Syntax Issue in If Statement Using Handles

1 回表示 (過去 30 日間)
Jay
Jay 2016 年 4 月 11 日
コメント済み: Jay 2016 年 4 月 11 日
I am trying to write an if statement in a function, to determine if the handles values are of valid type, as per the stipulation in the texts written above said handles in the GUI.
For handle 'edit1' I have written:
if handles.edit1 == NaN
set(handles.edtit2, 'enable', 'off') && set(handles.listbox1, 'string', 'Date must be of stated syntax')
else set(handles.edit2, 'enable', 'on')
end
During runtime the code skips to else not flagging
if handles.edit1 == Nan
as true thus setting the 'handles.edit2' off and having the error showing in listbox1.
What is wrong with my if statement?

採用された回答

Stephen23
Stephen23 2016 年 4 月 11 日
編集済み: Stephen23 2016 年 4 月 11 日
You cannot test for equality of NaN's, because as the documentation clearly states, NaN's are not equal to each other. Use isnan instead:
>> handles.edit1 = NaN;
>> handles.edit1 == NaN
ans =
0
>> isnan(handles.edit1)
ans =
1

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2016 年 4 月 11 日
Use ishghandle() instead testing for NaN .
  1 件のコメント
Jay
Jay 2016 年 4 月 11 日
Thanks Walter,
I will see if that does what I need.

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

カテゴリ

Help Center および File ExchangeGraphics Object Programming についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by