我有MATLAB数据文件,其中包含我要导入到python中的struct中的多个结构。在MATLAB中,如果main_struct
是主文件,我可以通过以下方式获取所需的数据 -
leaf1 = main_struct.tree1.leaf1
leaf2 = main_struct.tree1.leaf2
等等。现在我想在python中导入包含struct的.mat文件并访问leaf1
和leaf2
。在python中,我可以加载mat文件 -
import scipy.io as sio
data = sio.loadmat("main_struct.mat",squeeze_me=True, struct_as_record=False);
tree1 = data.['tree1'];
如何访问tree1
中的第二个结构?
答案 0 :(得分:3)
如果在MATLAB中你有以下
S = struct('tree1', struct('leaf1', {1}, 'leaf2', {2}));
save('filename.mat', '-struct', 'S')
如果loadmat
与struct_as_record = False
一起使用,则data['tree1']
的结果是scipy.io.matlab.mio5_params.mat_struct
对象,可用于访问嵌套结构。
您可以通过以下方式访问基础数据:
from scipy.io import loadmat
data = loadmat('filename.mat', squeeze_me=True, struct_as_record=False)
leaf1 = data['tree1'].leaf1
# 1
leaf2 = data['tree1'].leaf2
# 2