【问题标题】:Loop through a series of .mat files in MATLAB循环遍历 MATLAB 中的一系列 .mat 文件
【发布时间】:2012-07-25 15:29:09
【问题描述】:

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

我过去曾使用 .asc 文件执行此操作,但遇到了麻烦。 mat 文件。

我正在尝试以下方法:

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(索引)。

任何见解将不胜感激!

-谢谢-

【问题讨论】:

    标签: matlab loops file-io mat-file


    【解决方案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);
    

    【讨论】:

    • 您可以将 if/else 语句替换为:filename = sprintf('tempOR_%02d_norm.mat',i);
    【解决方案2】:

    如果您甚至不知道文件名,请尝试使用dir() 命令,如果我没记错的话,您可以使用dir(./*.mat) 指定要返回的文件扩展名。你可以从http://www.mathworks.com.au/help/techdoc/ref/dir.html找到更多的东西

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-06
      • 1970-01-01
      • 2013-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多