scipy.io.loadmat將其加載爲一個奇怪的ndarray,而不是加載MATLAB結構作爲字典(如http://docs.scipy.org/doc/scipy/reference/tutorial/io.html和其他相關問題中所述),其中值是數組的數組,並且字段名稱被認爲是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。 –