How to change values in a 2 dimensional vector at random points
Show older comments
Lets say I have n*m matrix. For each row I would pick a random starting point and change the values from that point to the end of the row.
x=ones(n,m);
T=randsample(m,n); %starting points for each row
End=m*ones(size(T)); %ending points for each row
x(:,T:End)=0 %This doesn't work but something like that
Eg:
magic(5);
T=randsample(5,5);
T =
2
3
1
5
4
%Now I want to make every value from T to end in X=0
for i=1:5
x(i,T(i):end)=0
end
Is there a way to vectorize this. If I'm simulating a million trials using a for loop is not very efficient.
Accepted Answer
More Answers (0)
Categories
Find more on Creating and Concatenating Matrices 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!