how to efficiently update one element in a matrix conditioned on another element

2 views (last 30 days)
Do you know how to do this? I have a matrix M=[2,3,2;-1,2,3]. I would like to check in any row, if there is a number is less than 0. If so, I let the second column of that row is equal to -Inf. So in this case, as M(2,1)<0.So I update M as [2,3,2;-1,-Inf,3].
I understand I probably can write a loop to do so. But the problem is I need to deal with a big matrix other than M here, which is only 2*3. I will like to speed up the process. So I would like to know if there is an more efficient way to do so? Could any one help me about this please?

Accepted Answer

the cyclist
the cyclist on 16 Mar 2014
M(any(M<0,2),2) = -Inf;

More Answers (0)


Find more on Operating on Diagonal 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!