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 件のコメント

Catalytic
Catalytic 2019 年 4 月 26 日
We have no way of knowing what you consider to be the "right response"....

サインインしてコメントする。

 採用された回答

Stephen23
Stephen23 2019 年 4 月 27 日
編集済み: Stephen23 2019 年 4 月 27 日

0 投票

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

その他の回答 (1 件)

Matt J
Matt J 2019 年 4 月 26 日
編集済み: Matt J 2019 年 4 月 26 日

0 投票

if all( Reg1(:,3)==0 )
Reg1(:,10)=0;
else
Reg1(:,10)=a1-b1*Reg1(:,3)+Reg1(:,6);
end

カテゴリ

ヘルプ センター および File ExchangeResizing and Reshaping Matrices についてさらに検索

質問済み:

2019 年 4 月 26 日

編集済み:

2019 年 4 月 27 日

Community Treasure Hunt

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

Start Hunting!

Translated by