在Matlab中处理一系列文件的输出

时间:2012-10-30 11:45:31

标签: file matlab sequence

编辑3

嗨!我有矩阵尺寸的问题,但我已经解决了。现在我的问题是我想对同一文件夹上的大量文件执行相同的操作,并且我希望在text.txt上的单独行上写入输出值。第一个它可以工作,但它不会“写”到'文本',其余的。有什么不对?

myPath = 'C:\EX\'; 
a= dir (fullfile(myPath,'*.DIM')); 
fileNames = { a.name };

% Rename files
for k = 1:length(fileNames)
     newFileName = [fileNames{k}(1:2) fileNames{k}(4:6) '.txt']; 
     movefile([myPath fileNames{k}], [myPath newFileName]);
end

 filePattern=fullfile( myPath,'*.txt');
 txtFiles= dir(filePattern);    
   for k = 1:length(txtFiles)
    baseFileName=txtFiles(k).name;
    fullFileName= fullfile(myPath,baseFileName);
    fid=fopen(fullFileName, 'r');
    for i = 1:18
        m{i} = fgetl(fid);
    end
    result2 = m{18};
    result2b= result2([12:19]);

    fid=fopen(fullFileName, 'r');
    for i = 1:30
    m{i} = fgetl(fid);
    end
    result3 = m{30};
    result3b= result3([12:19]);

    fid=fopen(fullFileName, 'r');
    for i = 1:31
    m{i} = fgetl(fid);
    end
    result4 = m{31};
    result4b= result4([12:20]);

    fid=fopen(fullFileName, 'r');
    for i = 1:19
    m{i} = fgetl(fid);
    end
    result5 = m{19};
    result5b= result5([12:20]);

  text= {baseFileName, result2b, result3b, result4b, result5b};
    final= [Fields'; text];

       end

提前非常感谢!

1 个答案:

答案 0 :(得分:0)

指数超出尺寸正是它的含义。

尝试在其出现的行处放置断点并检查result2的维度。假设它是一个向量,你会发现它的长度小于19。