i and j pass isnan test?

3 次查看(过去 30 天)
Eathan Baumgartner
Eathan Baumgartner 2018-8-10
评论: Stephen23 2018-8-10
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 个)

Image Analyst
Image Analyst 2018-8-10
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

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

产品


版本

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by