str2double / str2num / conversion confusion
1 次查看(过去 30 天)
显示 更早的评论
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?
0 个评论
采纳的回答
Joseph Cheng
2014-3-28
编辑:Joseph Cheng
2014-3-28
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
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!