我有一个子结构的结构作为matlab文件的输出。每个子结构都有四个变量,其中三个是数组。我想使用python访问此数据的每个值。

有人对我该怎么做有任何想法吗?我是python的新手。我已经安装了numpy和scipy。

% ----MATLAB FILE EXAMPLE----
main_struct{
         substruct1{atr1,atr2[1X64],atr3[50X64],atr4[50X64]}
         substruct2{atr1,atr2[1X64],atr3[50X64],atr4[50X64]}
          .
          .
          .
         substructn{atr1,atr2[1X64],atr3[50X64],atr4[50X64]}

}


提前致谢。

最佳答案

您可以在Python中读取matlab(.mat)文件,请尝试以下操作:

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


然后,您可以通过以下方式访问结构:

my_struct = mat['variable_name_in_matlab']


之后,您可以做

>>> print my_struct.shape
(1, 1)
>>> val = my_struct[0,0]
>>> print val
([[1.0]], [[2.0]])
>>> print val['field1']
[[ 1.]]
>>> print val['field2']
[[ 2.]]
>>> print val.dtype
[('field1', '|O8'), ('field2', '|O8')]


您可以查看更多详细信息here

08-16 20:18