12

を使用してアクセスしたマットファイルがあります

from scipy import io
mat = io.loadmat('example.mat')

matlab から、example.mat には次の構造体が含まれます

    >> load example.mat
    >> data1

    data1 =

            LAT: [53x1 double]
            LON: [53x1 double]
            TIME: [53x1 double]
            units: {3x1 cell}


    >> data2

    data2 = 

            LAT: [100x1 double]
            LON: [100x1 double]
            TIME: [100x1 double]
            units: {3x1 cell}

matlab では、data2.LON などと同じくらい簡単にデータにアクセスできます。Python では簡単ではありません。それは私にいくつかのオプションを与えます

mat.clear       mat.get         mat.iteritems   mat.keys        mat.setdefault  mat.viewitems   
mat.copy        mat.has_key     mat.iterkeys    mat.pop         mat.update      mat.viewkeys    
mat.fromkeys    mat.items       mat.itervalues  mat.popitem     mat.values      mat.viewvalues    

Pythonで同じ構造を保持することは可能ですか? そうでない場合、データに最もよくアクセスする方法は? 私が使用している現在の python コードは、非常に扱いにくいものです。

ありがとう

4

4 に答える 4

13

matlab struct と python に関するこのチュートリアルを見つけました

http://docs.scipy.org/doc/scipy/reference/tutorial/io.html

于 2012-08-14T15:22:23.417 に答える
0

(!) ファイルに保存された入れ子構造の場合、出力さ*.matれる辞書の項目io.loadmatが Matlab 構造であるかどうかを確認する必要があります。たとえば、Matlab の場合

>> thisStruct

ans =
      var1: [1x1 struct]
      var2: 3.5

>> thisStruct.var1

ans =
      subvar1: [1x100 double]
      subvar2: [32x233 double]

次に、scipy.io.loadmat のネストされた構造 (つまり、辞書)でマージしてコードを使用します。

于 2015-04-29T20:24:07.820 に答える