MATLAB Answers

0

Crazy If statement Error

Asked by Andrei Makarskiy on 21 Oct 2015
Latest activity Commented on by Andrei Makarskiy on 21 Oct 2015
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....

  0 Comments

Sign in to comment.

1 Answer

Answer by the cyclist
on 21 Oct 2015
Edited by the cyclist
on 21 Oct 2015
 Accepted Answer

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 Comment

What can I say.... BDSM )) I found the way using Switch in both cases

Sign in to comment.