如何从double中获取数据?Matlab

如何从double中获取数据?Matlab,matlab,loops,double,Matlab,Loops,Double,昨天我使用了一些对我来说非常好的代码,今天我试着使用它,但它做的工作与以前不同。我不确定为什么,因为我在再次运行之前没有做任何更改。 代码是: [FileName,PathName,FilterIndex] = uigetfile('*.txt*','MultiSelect','on'); numfiles = size(FileName,2); for ii = 1:numfiles FileName{ii}; entirefile =fullfile(PathName,

昨天我使用了一些对我来说非常好的代码,今天我试着使用它,但它做的工作与以前不同。我不确定为什么,因为我在再次运行之前没有做任何更改。
代码是:

[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文件的示例:

暗补偿;1
暗_补偿_值_1;0
暗_补偿_值_2;0
暗补偿值3;0
监控像素0;0
监控像素_1;0
监控像素_2;0
监视像素3;0
监控像素_4;0
监视器像素5;0
垂直选择标志;0
垂直线3;63
垂直线4;63
垂直线3;390
垂直线4_wv;390
垂直线标志;0
垂直线比;0
激光波长;0
激光功率级;0
叠加法;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]
获取数据?

我想我已经发现了您的问题。问题在于这行中的
%f

parts=textscan(t行,'%f;')


如文档中所示,您只需要提取双重格式的数据。将
%f
更改为
%s
,您应该会表现良好。

您可以提供文本文件的示例或日期的外观吗?是的,我会编辑问题并将其添加进去@Marcine您报告的症状与您的代码(您不知道)在交互工作区中对变量(以及可能的其他内容,如会话选项)具有依赖关系是一致的。昨天那些依赖关系得到了满足,今天却没有。@HighPerformanceMark感谢您的反馈,您有什么建议可以避免这种情况吗?
A
的大小可能因程序的使用而异,因此我认为预先分配数组不是一个好的选择。问题是
A
实际上是一个单元格数组(请确认),而您不希望它是和/或希望显示内容?这将把数字数据转换为字符串。我很确定这不是OP想要的,也不是真正的问题所在。此外,可能需要进行其他更改,以便将字符串存储在
A
中。