Change 1 to -1 in a matrix

1 vue (au cours des 30 derniers jours)
Offroad Jeep
Offroad Jeep le 26 Sep 2016
Commenté : KSSV le 26 Sep 2016
Hi to all the members, I have a 4 X 4 Matrix of one i.e ones(4). I want to change all the elements from 1 to -1 randomly in the matrix. BUT Only one element should change at a time from 1 to -1. That it the 1 changes to -1 sixteen times as we have sixteen elements in the matrix.

Réponse acceptée

Adam
Adam le 26 Sep 2016
m = ones(4);
r = rand(4) - 0.5;
m = m .* sign( r );
is one of many ways to do it.
  2 commentaires
Offroad Jeep
Offroad Jeep le 26 Sep 2016
Thanks for reply......Kindly see the question as i left some idea what i needed
Adam
Adam le 26 Sep 2016
orderIdx = randperm(16);
for n = 1:16
m( orderIdx(n) ) = -1;
end

Connectez-vous pour commenter.

Plus de réponses (1)

KSSV
KSSV le 26 Sep 2016
Modifié(e) : KSSV le 26 Sep 2016
A = ones(4,4) ;
N = 5 ; % number of ones to make negative
idx = randsample(1:16,N) ; % select N random positions to change 1 to -1
A(idx) = -1 ;
  4 commentaires
Offroad Jeep
Offroad Jeep le 26 Sep 2016
giving error as one 1 remains unchanged.... can please go through... regards
KSSV
KSSV le 26 Sep 2016
At the end:
A(pos) = -1 ;

Connectez-vous pour commenter.

Catégories

En savoir plus sur Discrete Math dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by