2010-02-28 55 views
0

我怎麼可以用for循環閱讀下列文件:(?可以循環忽略文件名中的字符)在這個循環的開始處我必須添加什麼?

ABC-1.TXT
CDE-2.TXT
SER-3.TXT
WSZ-4.TXT
AQZ-5.TXT
眼壓6.TXT

什麼我必須在這個循環的開頭添加?

for i = 1:1:6 
    nom_fichier = strcat(['MyFile\.......' num2str(i) '.TXT']); 
+0

Matlab應該知道文件名中的數字之前的字符是什麼?或者你想讀取名稱以數字結尾的所有文件?閱讀文件的順序是否重要?請提供更多細節。 – yuk 2010-02-28 00:58:30

回答

3

您可以通過使用DIR命令來避免構造文件名。例如:

myfiles = dir('*.txt'); 
for i = 1:length(myfiles) 
    nom_fichier = myfiles(i).name; 
    ...do processing here... 
end 
1

首先,爲什麼要在這裏使用strcat?這本身就是一個單獨的字符串。所有連接已由括號[]完成。

['MyFile\.......' num2str(i) '.TXT'] 

接下來,我不確定您的問題在這裏。它是如何加載數據?如果文件是簡單分隔的數字,每行上的數字相同,那麼加載就足夠加載它們,或者您可能需要使用文本讀取。

我的猜測是你不知道如何構建文件名的主要部分。你可能會做這種方式:

Names = {'abc' 'cde 'ser' 'wsz' 'aqz' 'iop'}; 
for i = 1:6 
    fn = ['MyFile',filesep,Names{i},'-',num2str(i),'.TXT']; 
    data = load(fn); 

    % do other stuff ... 

end 

如果你不想通過鍵入,然後使用目錄,也許像這樣創建文本文件名的列表,以創建具有名稱的變量:

Names = dir('MyFile\*.TXT'); 
相關問題