1

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

}

提前致谢。

4

2 回答 2

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')]

您可以在此处查看更多详细信息

于 2013-05-21T12:23:45.400 回答
0

应该dict在python中转换为。

main_struct['substruct1']['atr2']  

应该是python的等价物

main_struct.substruct1.atr2

在matlab中。

于 2013-05-21T11:48:36.893 回答