2015-11-10 69 views
0

這裏是我的代碼:如何加載文件名存儲在數組中的文件?

function [] = plotavg (x) 
files = dir('*.mat'); 
for c=1:length(files) 
    load files(c); 
    d=0; 
    if start_month == x 
     for i=1:length(data) 
      d = d + data(i); 
     end 
    end 
end 

我不知道如何使加載功能加載在指數數組的

感謝列出的文件寫吧!

+0

請注意,對於c = files'也可以。然後你可以在循環中輸入'c.name'來獲取文件的名稱。此外,你應該嘗試[調試器](http://se.mathworks.com/help/matlab/debugging-code.html)這樣的問題。 – patrik

回答

5

dir返回一個帶有一些字段名稱的結構體。其中之一是「名稱」,即文件的名稱。如果您鍵入例如文件(1)在控制檯中,你會看到你的目錄中的每個項目的字段。

更換

load files(c); 

load(files(c).name); 

,它應該工作。

+0

請注意,前2個元素會給你「垃圾」。第一個元素是「'。」,第二個元素是「..」。這是文件系統的基本結構。 「'。」表示「當前文件夾」,「..」表示「父文件夾」。這些存在的原因是在使用命令行參數時可以導航文件夾。 – patrik

+0

是的,但如果您在dir命令中使用過濾器,例如文件= DIR( '*墊');將僅列出.mat文件和文件(1)的確將包含目錄中的第一個.mat文件。 –

+0

那工作:)非常感謝你! – Harrison

相關問題