i and j pass isnan test?

3 visualizzazioni (ultimi 30 giorni)
Eathan Baumgartner
Eathan Baumgartner il 10 Ago 2018
Commentato: Stephen23 il 10 Ago 2018
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 Commento
Stephen23
Stephen23 il 10 Ago 2018
" I have no idea why this is, anyone got a clue?"
Because i and j both represent a perfectly valid number:

Accedi per commentare.

Risposte (1)

Image Analyst
Image Analyst il 10 Ago 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

Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

Prodotti


Release

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by