change a value in matrix

2 views (last 30 days)
NA
NA on 2 Apr 2019
Answered: Guillaume on 2 Apr 2019
A=[1,0,5,3,0;2,0,6,0,9;0,0,5,3,1];
idx = randperm(size(A,1),1);
[~,col,val]=find(A(idx,:));
changed=val+0.5*rand;
I want to make a new_A according to changed value. if
idx=2, changed=[2.11,6.11,9.11];
new_A should be
new_A=[1,0,5,3,0;2.11,0,6.11,0,9.11;0,0,5,3,1];

Accepted Answer

Guillaume
Guillaume on 2 Apr 2019
Note that
idx = randi(size(A, 1));
would make more sense than randperm with just one element output. Anyway,
randomrow = randi(size(A, 1)); %better name than idx as well.
A(randomrow, :) = A(randomrow, :) + 0.5 * rand * (A(randomrow, :) ~= 0)

More Answers (0)

Community Treasure Hunt

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

Start Hunting!