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

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 commentaire

We have no way of knowing what you consider to be the "right response"....

Connectez-vous pour commenter.

 Réponse acceptée

Stephen23
Stephen23 le 27 Avr 2019
Modifié(e) : Stephen23 le 27 Avr 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

Plus de réponses (1)

Matt J
Matt J le 26 Avr 2019
Modifié(e) : Matt J le 26 Avr 2019
if all( Reg1(:,3)==0 )
Reg1(:,10)=0;
else
Reg1(:,10)=a1-b1*Reg1(:,3)+Reg1(:,6);
end

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by