0

計算のために個別に使用する必要がある 12 個のマット ファイル (各月に 1 個) があります。一度に 12 個すべてをロードするには大きすぎます。したがって、私は月 #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(indices) を使用して変数にアクセスします。

どんな洞察もいただければ幸いです!

-ありがとう-

4

2 に答える 2

1

それを手に入れました(.matファイルの読み込みと保存のためのLoopの助けを借りて):

こんなふうになります...

 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);
于 2012-07-26T23:45:18.847 に答える
0

ファイル名さえ知らない場合はdir()、コマンドを試してください。私の記憶が正しければ、返すファイル拡張子を指定できますdir(./*.mat)http://www.mathworks.com.au/help/techdoc/ref/dir.htmlからさらに多くのものを見つけることができます

于 2012-07-27T02:01:43.507 に答える