フィルターのクリア

Crazy If statement Error

1 回表示 (過去 30 日間)
Andrei Makarskiy
Andrei Makarskiy 2015 年 10 月 21 日
コメント済み: Andrei Makarskiy 2015 年 10 月 21 日
I have the following code:
optionDirection='sell'; % buy sell
optionType='put'; % put call all
if (optionDirection == 'buy')
switch optionType
case 'put'
calc_put_options_change;
case 'call'
calc_call_options_change;
case 'all'
calc_call_options_change;
calc_put_options_change;
end
else
switch optionType
case 'put'
calc_sold_put_options_change;
case 'call'
calc_sold_call_options_change;
case 'all'
calc_sold_call_options_change;
calc_put_options_change;
end
end
What does this error mean??
Error using ==
Matrix dimensions must agree.
Error in calc_change (line 36)
if (optionDirection == 'buy')
P.S. Matlab never stops surprising me on almost every simple step. Seems like Matlab developers aren't looking for easy ways....

採用された回答

the cyclist
the cyclist 2015 年 10 月 21 日
編集済み: the cyclist 2015 年 10 月 21 日
The == operation does a specific comparison that is not appropriate here. I think you'll find more success with either isequal or strcmp.
If your definition of "easy" is for every programming language to be syntactically equivalent, then you are doomed to disappointment. MATLAB syntax is obviously optimized to make certain things (especially matrix computations) fast and easy. Other things then have to be a bit less intuitive. There's just no way around that.
  1 件のコメント
Andrei Makarskiy
Andrei Makarskiy 2015 年 10 月 21 日
What can I say.... BDSM )) I found the way using Switch in both cases

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by