在MATLAB中循环遍历一系列.mat文件

时间:2012-07-26 23:35:26

标签: matlab loops file-io mat-file

我有12个mat文件(每月一个)需要单独用于计算。它们太大了,无法同时加载所有十二个。因此,我想打电话给第1个月,进行计算,拨打第2个月,...#12。

我以前用.asc文件做过这个,但是遇到了麻烦。垫文件。

我正在尝试以下方法:

matObj = matfile('tempOR_norm.mat')

matObj = 

  matlab.io.MatFile

  Properties:
      Properties.Source: 'C:\GIS_DATA\SNOW\Programs\SNOW\tempOR_norm.mat'
    Properties.Writable: false                                           
         tempOR_01_norm: [1424x1817 double]                              
         tempOR_02_norm: [1424x1817 double]                              
         tempOR_03_norm: [1424x1817 double]                              
         tempOR_04_norm: [1424x1817 double]                              
         tempOR_05_norm: [1424x1817 double]                              
         tempOR_06_norm: [1424x1817 double]                              
         tempOR_07_norm: [1424x1817 double]                              
         tempOR_08_norm: [1424x1817 double]                              
         tempOR_09_norm: [1424x1817 double]                              
         tempOR_10_norm: [1424x1817 double]                              
         tempOR_11_norm: [1424x1817 double]                              
         tempOR_12_norm: [1424x1817 double] 

但是如何循环浏览此列表?

我需要一些符合

的内容
input = load(matObj(i))

但是这给了我:

  

MatFile对象是标量。使用语法访问变量   objName.varName(指数)。

任何见解都将受到赞赏!

-Thanks -

2 个答案:

答案 0 :(得分:1)

得到它(在Loop for loading and saving .mat files的帮助下):

它是这样的......

 for i = 1:12;
        if (i <= 9)
            filename = ['tempOR_0', int2str(i), '_norm.mat'];
        else    filename = ['tempOR_', int2str(i), '_norm.mat'];
        end
 end

load(filename);

答案 1 :(得分:0)

如果你甚至不知道文件名try dir()命令,如果我正确回忆你可以用dir(./*.mat)指定要返回的文件扩展名。您可以在http://www.mathworks.com.au/help/techdoc/ref/dir.html

中找到更多内容