Syntax Issue in If Statement Using Handles

2 ビュー (過去 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 ExchangeCreating, Deleting, and Querying Graphics Objects についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by