i and j pass isnan test?
Show older comments
I have code which extracts data from a gui entry as follows:
handles.bonusI = get(handles.bonusEB,'string');
handles.bonusI = str2double(handles.bonusI);
if isnan(handles.bonusI) == 0
Code executes
else
error displays
end
For every character I have tested that are not numbers, an error will be displayed. Except i and j. When testing handles.bonus, I both hold the value of 0.0000 + 1.0000i. I have no idea why this is, anyone got a clue?
1 Comment
Stephen23
on 10 Aug 2018
" I have no idea why this is, anyone got a clue?"
Because i and j both represent a perfectly valid number:
Answers (1)
Image Analyst
on 10 Aug 2018
i and j, as strings in your edit text box, can be passed to str2double() as a special case, but other character strings can't unless the string is all numbers. See this demo:
>> str2double('i')
ans =
0 + 1i
>> str2double('a')
ans =
NaN
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!