str2double / str2num / conversion confusion

1 Ansicht (letzte 30 Tage)
Golnar
Golnar am 27 Mär. 2014
Kommentiert: Golnar am 28 Mär. 2014
f1=fopen('report_data.txt', 'r');
f2=fopen('imaginary.txt', 'r');
area=[str2double(fgetl(f1)), str2double(fgetl(f2))]';
volume=[str2double(fgetl(f1)), str2double(fgetl(f2))]';
healthy_exposed=[str2double(fgetl(f1)), str2double(fgetl(f2))]';
pus=[str2double(fgetl(f1)), str2double(fgetl(f2))]';
necrotic=[str2double(fgetl(f1)), str2double(fgetl(f2))]';
fprintf('Surface Area: %2.1f cm^2 \n', str2double(area(1)));
fprintf('Volume: %2.3f cm^3 \n', str2double(volume(1)));
fprintf('Necrotic: %2.3f', str2double(necrotic(1)));
fprintf('Infection: %2.3f', str2double(pus(1)));
fprintf('Exposed: %2.3f', str2double(healthy_exposed(1)));
Result:
The initial format is a string because its a line from an edit box in a GUI. But these 5 parameters are numbers. Why aren't they showing up?

Akzeptierte Antwort

Joseph Cheng
Joseph Cheng am 28 Mär. 2014
Bearbeitet: Joseph Cheng am 28 Mär. 2014
reason is that you are doing str2double 2x. so area already has the text being converted to a double. then you try to convert a double to double in your fprintf.
simple test:
x='1';
str2double(str2double(x))
will result to NaN
no need for the str2double in the fprintf statement
  2 Kommentare
Golnar
Golnar am 28 Mär. 2014
How right you are!
Golnar
Golnar am 28 Mär. 2014
Yet for one of the parameters it still results NaN

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by