昨天,我使用了一些对我来说非常好的代码,今天我试着使用它,它已经不再像以前那样工作了。我不知道为什么,因为我没有做任何改变,然后再运行它。
守则是:
[FileName,PathName,FilterIndex] = uigetfile('*.txt*','MultiSelect','on');
numfiles = size(FileName,2);
for ii = 1:numfiles
FileName{ii};
entirefile =fullfile(PathName,FileName{ii});
fid = fopen(entirefile);
tline = fgets(fid);
while ischar(tline)
parts = textscan(tline, '%f;');
if numel(parts{1}) > 0
A = [ A ; parts{:}' ];
end
tline = fgets(fid);
end
fclose(fid);
end
B = A(1:end)当我昨天使用它时,B = A(1:end)显示了我希望上传它们的文件中的所有数据,但是现在它以二进制形式显示数据,例如:
[ 1x11 double]
[ 1x11 double]
[ 1x11 double]
[ 1x11 double]
[ 1x11 double]
[ 1x11 double]
[ 1x11 double]
[ 1x11 double]
[ 1x11 double]
[ 1x11 double]
[ 1x11 double]
[ 1x11 double] 下面是txt文件的一个示例:
dark_compensate;1 dark_compensate_value_1;0 dark_compensate_value_2;0 dark_compensate_value_3;0 监控pixel_0;0 监控pixel_1;0 监控pixel_2;0 监控pixel_3;0 监控pixel_4;0 监控pixel_5;0 vertical_select_flag;0 vertical_line3;63 vertical_line4;63 vertical_line3_wv;390 vertical_line4_wv;390 vertical_line_flag;0 vertical_line_ratio;0 laser_wavelength;0 laser_powerlevel;0 overlay_js;0 相对强度修正旗;0 像素;波长;拉曼偏移;黑暗;参考;原始数据#1;暗减#1;%TR #1;吸光度#1;辐射度(腔)#1; 0;165.98;60247.73;-60247.73;0.0000;65535.0000;1542.0000;256.7222;0.0000;0.0000;0.0000;1;166.38;60103.59;-60103.59;0.0000;65535.0000;1027.0000;-258.2778;0.0000;0.0000;0.0000;2;166.78;59960.14;-59960.14;0.0000;65535.0000;357.0000;-928.2778;0.0000;0.0000;0.0000;3;167.18;59817.38;-59817.38;0.0000;65535.0000;1281.0000;-4.2778;0.0000;0.0000;0.0000;4;167.57;59675.31;-59675.31;0.0000;65535.0000;1229.0000;-56.2778;0.0000;0.0000;0.0000;5;167.97;59533.90;-59533.90;0.0000;65535.0000;1210.0000;-75.2778;0.0000;0.0000;0.0000;6;168.37;59393.17;-59393.17;0.0000;65535.0000;1235.0000;-50.2778;0.0000;0.0000;0.0000;7;168.77;59253.11;-59253.11;0.0000;65535.0000;1274.0000;-11.2778;0.0000;0.0000;0.0000;8;169.17;59113.71;-59113.71;0.0000;65535.0000;1265.0000;-20.2778;0.0000;0.0000;0.0000;9;169.56;58974.97;-58974.97;0.0000;65535.0000;1198.0000;-87.2778;0.0000;0.0000;0.0000;10;169.96;58836.88;-58836.88;0.0000;65535.0000;1276.0000;-9.2778;0.0000;0.0000;0.0000;11;170.36;58699.44;-58699.44;0.0000;65535.0000;1285.0000;-0.2778;0.0000;0.0000;0.0000;
循环的工作方式是只从文件中导入数字数据。
有人能提出为什么会这样吗?或如何从[ 1x11 double]获取数据。
发布于 2014-05-31 02:57:46
我想我找到你的问题了。问题在于这行中的%f:
parts = textscan(tline, '%f;');
如文档这里所示,您只需要提取双格式的数据。将%f更改为%s,您应该会很好。
https://stackoverflow.com/questions/23952231
复制相似问题