Change 1 to -1 in a matrix

1 Ansicht (letzte 30 Tage)
Offroad Jeep
Offroad Jeep am 26 Sep. 2016
Kommentiert: KSSV am 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.

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

KSSV
KSSV am 26 Sep. 2016
Bearbeitet: KSSV am 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 Kommentare
Offroad Jeep
Offroad Jeep am 26 Sep. 2016
giving error as one 1 remains unchanged.... can please go through... regards
KSSV
KSSV am 26 Sep. 2016
At the end:
A(pos) = -1 ;

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Discrete Math finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by