我有一个子结构的结构作为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]}
}
提前致谢。
答案 0 :(得分:3)
您可以在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
答案 1 :(得分:0)
应该在python中转换为dict
。
main_struct['substruct1']['atr2']
应该是等效于
的pythonmain_struct.substruct1.atr2
在matlab中。