Update elements in matrix with condition

4 次查看(过去 30 天)
Ravi Kumar
Ravi Kumar2021-10-26
回答: Cris LaPierre ,2021-10-26
I have a large matrix (1st image). I need to update element in column 3&4 whenver it becomes 0 in column 5 or integer changes in column 6.
And I want to update it with sum from column 1 and 2.
See second image for more clarity.
My matrix should perform this for all the rows.
  1 个评论
Ravi Kumar
Ravi Kumar 2021-10-26
Tried this, but not working. (still getting same values in column 3&4)
N = size(P,1);
for i = 1:1:N
if P(N,5) == 0
P(N,3) = P(N,1) + P(N,3);


回答(2 个)

Rik 2021-10-26
N = size(P,1);
for k = 1:1:N
if P(k,5) == 0
P(k,3) = P(k,1) + P(k,3);
Similar code will allow you to edit when the value changes:
if k>1 && A(k-1)==A(k)

Cris LaPierre
Cris LaPierre 2021-10-26
Use logical arrays (Ch 12 of MATLAB Onramp).
Perhaps something like this (untested)

Community Treasure Hunt

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

Start Hunting!

Translated by