用python打开matlab子结构的结构

时间:2013-05-21 11:28:50

标签: python matlab numpy scipy structure

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

}

提前致谢。

2 个答案:

答案 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']  

应该是等效于

的python
main_struct.substruct1.atr2

在matlab中。