2016-02-26 162 views
0

我需要遍歷每個在以下子文件夾中的文件:遍歷子文件夾中的所有文件

/Testing 
/Training 
/Validation 

這將類似於下面的代碼,除了它會遍歷這三個子文件夾中的所有文件(現在它循環遍歷文件1到92,但現在它們被分割成這些文件夾)。

for i=1:92 
str = sprintf('load data%i.mat', i); 
eval(str); 
Info.data=Info.data(:,[1,2,3,5,6,7,9,10,11]); 
str = sprintf('save data%i.mat', i); 
eval(str); 
end 
+2

見['dir'](http://www.mathworks.com/help/matlab/ref/dir.html)。請注意,不存在遞歸,因此您需要尋找外部工具或創建自己的工具。您也可以使用[Windows系統調用](http://stackoverflow.com/a/35605760/2748311)。另外,這裏不需要使用'eval'。 'save(str)'工作得很好。 – excaza

+0

在未來,您應該編輯您的原始問題。多次重複發佈相同的問題不是猶太教。 (http://stackoverflow.com/questions/35657019/creating-a-model-matrix-in-matlab) –

回答

0
p1=pwd; 
p2={'\Testing' '\Training' '\Validation'}; 
for i=1:length(p2) 
    cd([p1, p2{i}]) 
    files = dir('*.mat'); 
    for file = files' 
     load(file.name); 
     Info.data=Info.data(:,[9,10,11]); 
     save(file.name); 
    cd(p1); 
end 
end