str2double / str2num / conversion confusion

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

0 Stimmen

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

Gefragt:

am 27 Mär. 2014

Kommentiert:

am 28 Mär. 2014

Community Treasure Hunt

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

Start Hunting!

Translated by