首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从双份数据中获取数据?Matlab

如何从双份数据中获取数据?Matlab
EN

Stack Overflow用户
提问于 2014-05-30 10:18:12
回答 1查看 232关注 0票数 0

昨天,我使用了一些对我来说非常好的代码,今天我试着使用它,它已经不再像以前那样工作了。我不知道为什么,因为我没有做任何改变,然后再运行它。

守则是:

代码语言:javascript
复制
[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)显示了我希望上传它们的文件中的所有数据,但是现在它以二进制形式显示数据,例如:

代码语言:javascript
复制
[ 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]获取数据。

EN

回答 1

Stack Overflow用户

发布于 2014-05-31 02:57:46

我想我找到你的问题了。问题在于这行中的%f

parts = textscan(tline, '%f;');

如文档这里所示,您只需要提取双格式的数据。将%f更改为%s,您应该会很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23952231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档