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
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
KSSV
KSSV on 26 Sep 2016
At the end:
A(pos) = -1 ;

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!