2012-10-30 32 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}(單元陣列或矩陣,取決於其內容) –