creating a new column in a matrix using 'if condition"

3 views (last 30 days)
On the following matrix:
Untitled.png
I am using the following code which is not giving the right response.
if Reg1(:,3)==0
Reg1(:,10)=0;
else
Reg1(:,10)=a1-b1*Reg1(:,3)+Reg1(:,6);
end
Cannot figure out the issue.
The output is
Untitled.png
  1 Comment
Catalytic
Catalytic on 26 Apr 2019
We have no way of knowing what you consider to be the "right response"....

Sign in to comment.

Accepted Answer

Stephen23
Stephen23 on 27 Apr 2019
Edited: Stephen23 on 27 Apr 2019
IF will not help you in this situation.
You need to use indexing, e.g.:
Reg1(:,10) = a1-b1*Reg1(:,3) + Reg1(:,6);
idx = Reg1(:,3)==0;
Reg1(idx,10) = 0

More Answers (1)

Matt J
Matt J on 26 Apr 2019
Edited: Matt J on 26 Apr 2019
if all( Reg1(:,3)==0 )
Reg1(:,10)=0;
else
Reg1(:,10)=a1-b1*Reg1(:,3)+Reg1(:,6);
end

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!