dictとしてMATLAB構造体をロードするのではなく(http://docs.scipy.org/doc/scipy/reference/tutorial/io.htmlとその他の質問に記載されています)、scipy.io.loadmatはそれを奇妙なndarrayとしてロードします。値は配列の配列で、フィールド名はdtypeと解釈されます。最小例:scipy.io.loadmatは、MATLAB(R2016a)構造体を正しく読み込みません。
(MATLAB):
>> a = struct('b',0)
a =
b: 0
>> save('simple_struct.mat','a')
(パイソン):
In[1]:
import scipy.io as sio
matfile = sio.loadmat('simple_struct.mat')
a = matfile['a']
a
Out[1]:
array([[([[0]],)]],
dtype=[('b', 'O')])
この問題は、Python 2の持続および3
上記で使用したドキュメントリンクの[MATLAB構造セクション](http://docs.scipy.org/doc/scipy/reference/tutorial/io.html#matlab-structs)を実際に読んだことがありますか?これはすべての期待される動作であるように見えます。それは 'squeeze_me'と' struct_as_record'パラメータをどのように使用できるかを説明するために続きます。 – rkersh
十分に十分ではありません!ありがとう。私はこの質問[リンク](http://stackoverflow.com/questions/1984714/how-to-access-fields-in-a-struct-imported-from-a-mat-file-using-loadmat-in)の間にあると思います-pyth)、structs_as_recordはデフォルトでTrueになりました。 –