conditional statement in one line for table columns

logic: if(p2>0) r4=q2/p2 else r4=2*q2/p2 Question : how to convert this into r4={if p2>0?r4=q2/p2:r4=2*q2/p2} in matlab? p2 and q2 are columns of table.

 採用された回答

alice
alice 2017 年 6 月 23 日

1 投票

Have a look at the documentation, for example these: find-array-elements-that-meet-a-condition and element-wise-multiplication.
In your case, you can do:
r4 = (p2>0).*(q2./p2) + (p2<=0).*(q2./p2)*2;

その他の回答 (1 件)

Guillaume
Guillaume 2017 年 6 月 23 日
編集済み: Guillaume 2017 年 6 月 23 日

0 投票

Or, rather than relying on semi-obscure mathematical expressions:
r4 = q2 ./ p2;
r4(p2 > 0) = 2 * r4(p2 > 0);
In my opinion, a lot clearer as to the intent.

カテゴリ

ヘルプ センター および File ExchangeData Type Conversion についてさらに検索

質問済み:

2017 年 6 月 23 日

編集済み:

2017 年 6 月 23 日

Community Treasure Hunt

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

Start Hunting!

Translated by