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

File 在Matlab中处理一系列文件的输出,file,matlab,sequence,File,Matlab,Sequence,编辑3 嗨!我有矩阵维数的问题,但我已经解决了。现在我的问题是,我想对同一文件夹中的一大系列文件执行相同的操作,并且我想在text.txt上的单独一行中写入输出值。对于第一个,它可以工作,但它不“写”到“文本”,其余的。有什么不对劲吗 myPath = 'C:\EX\'; a= dir (fullfile(myPath,'*.DIM')); fileNames = { a.name }; % Rename files for k = 1:length(fileNames) new

编辑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

真的提前谢谢了

索引超出维度正是它的意思


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

是否要对一大系列文件应用相同的操作/函数?然后在
test.txt
中的单独一行中写入每个测试的输出?感谢Gunther的回复。是的,这正是我想做的,但没有用(我刚刚再次编辑了这个问题。谢谢你的评论Dennis。我已经检查过了,但不知道如何解决这个问题。如果我逐个函数计算,它会工作,但如果我全部执行,“result2”将更改为“-1”。我不明白为什么。我仍然在检查是否能找到发生这种情况的原因!:(如果它对每个文件都单独起作用,那么尝试将文件i的输出存储在result2{i}(单元格数组或矩阵,取决于其内容)谢谢Dennis,非常感谢!我已经尝试了“text={baseFileName,result2b,result3b,result4b,result5b};”这一行。我想这是你的意思,但我不太确定。