我有一个子结构的结构作为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