if i want select value by condition i can write
(a==1)*3+(a~=1)*5
when a will get 3 if a is 1 or 5 if not.
can i do somthing like this but the result is a string. foe example:
(a==1)*'Good'+(a~=1)*'bad'
when a will be 1 i will get 'good' else i will get 'bed'
i want it for sprintf. i want write a message that if a value is lower from 0 it will write 'loss' and if it higher it write 'profit'
sprintf('Are %s is %d', (v<0)loss (v>0)profit, v)

 採用された回答

Geoff Hayes
Geoff Hayes 2015 年 3 月 8 日

0 投票

Yona - I think that the closest you can get to doing what you want is to create an array of strings as
msgs = {'loss','profit'};
then access the one you want based on whether v is positive or negative
sprintf('Our %s is %d', msgs{(v>0)+1}, v)
Try the above and see what happens!

1 件のコメント

Yona
Yona 2015 年 3 月 8 日
good way. I didn't think about place in cell by condition

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

その他の回答 (0 件)

カテゴリ

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

製品

質問済み:

2015 年 3 月 8 日

コメント済み:

2015 年 3 月 8 日

Community Treasure Hunt

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

Start Hunting!

Translated by