Change 1 to -1 in a matrix

1 view (last 30 days)
Offroad Jeep
Offroad Jeep on 26 Sep 2016
Commented: KSSV on 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.

Accepted Answer

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

Sign in to comment.

More Answers (1)

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

Sign in to comment.

Categories

Find more on Discrete Math in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!