我正在使用numel逐个读取和处理多个文件。但是当有tline语句时它会barfs

时间:2017-11-21 02:00:06

标签: matlab

我正在使用numel逐个读取和处理多个文件。但是当有tline语句时它会barfs。这是我的代码。有人可以帮忙吗?

   ......
    filename = ['20170101.BER' '20170102.BER' '20170103.BER' '20170104.BER'];

    for i = 1:numel(filename)
        fid = fopen(filename,'rt');

        % Read file and find lines with the string 'DATA'
        count=0;
        got1=[];
        got2=[];
        while 1
            tline = fgetl(fid);
              if ~ischar(tline), break, end
                count=count+1;

        count5=0;
        count3=[];
        for(t=1:length(tline)-length(str)+1)
        count4=0;
        for(count2=1:length(str))
        ......

        fclose(fid);

    end

1 个答案:

答案 0 :(得分:1)

fgetl的调用失败,因为fid不是有效的文件ID。您的主要问题是如何存储和访问filename。你现在拥有的是1乘N character array。最好将文件名存储在cell array of character arrays中,如下所示:

filename = {'20170101.BER' '20170102.BER' '20170103.BER' '20170104.BER'};

现在这是一个1乘4的单元阵列。循环遍历4个单元格时,必须提取字符数组以打开文件,如下所示:

fid = fopen(filename{i}, 'rt');

只要这些文件在current directory中,它们就可以正常加载。