Change of sign in a matrix one by one
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi to all the users. I have a matrix A = ones(5), I want to change the sign of elements one by one but under the condition with rand(1).
Pick random position 1 in A then take rand_number = rand(1) if rand_number>=0.5 fix that 1 to -1
else 1 remains 1 then again pick 1 from the remaining 1s in the matrix A continue till all ones go to -1
Hope i have explained well.
Regards
0 Commenti
Risposte (1)
KSSV
il 28 Nov 2016
Modificato: KSSV
il 28 Nov 2016
A = ones(5) ;
Ac = A(:) ;
pos = 1:length(Ac) ;
for i = 1:length(pos)
rand_pos = randsample(pos,1) ;
if rand(1) > 0.5
Ac(rand_pos) = -1 ;
end
pos = setdiff(pos,rand_pos) ;
end
A = reshape(Ac,5,5) ;
3 Commenti
KSSV
il 28 Nov 2016
A = ones(5) ;
Ac = A(:) ;
pos = 1:length(Ac) ;
while ~isempty(pos)
rand_pos = randsample(pos,1) ;
if rand(1) > 0.5
Ac(rand_pos) = -1 ;
pos = setdiff(pos,rand_pos) ;
end
end
A = reshape(Ac,5,5) ;
Vedere anche
Categorie
Scopri di più su Logical in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!