Change 1 to -1 in a matrix

2 次查看(过去 30 天)
Offroad Jeep
Offroad Jeep 2016-9-26
评论: KSSV 2016-9-26
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.

采纳的回答

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

请先登录,再进行评论。

更多回答(1 个)

KSSV
KSSV 2016-9-26
编辑:KSSV 2016-9-26
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 个评论
Offroad Jeep
Offroad Jeep 2016-9-26
giving error as one 1 remains unchanged.... can please go through... regards

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by