2012-10-30 22 views
0

编辑3过程输出在Matlab

嗨!矩阵尺寸有问题,但我已经解决了。现在我的问题是,我想对同一个文件夹上的大量文件执行相同的操作,并且我想将输出值写在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 

真的在此先感谢!

+0

你是否想对大量文件应用相同的操作/函数?然后在'test.txt'的单独一行中写入每一行的输出? –

+0

感谢Gunther给你答复。是的,这正是我想要做的,但不起作用。 (我刚刚编辑了这个问题 – user1578688

回答

0

索引超出尺寸正是它的意思。

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

+0

感谢您的评论丹尼斯我已经检查过但我不知道如何解决这个问题如果我通过函数逐个函数评估它的工作,但是如果我执行所有'result2'变为'-1'我不明白为什么,如果我能找到为什么会发生这种情况,我仍然检查:( – user1578688

+0

解决了它,但它只适用于第一个文件 – user1578688

+0

If它适用于每个文件,然后尝试将文件i的输出存储在result2 {i}(单元阵列或矩阵,取决于其内容) –