在 python 中的结构中导入 matlab 结构

Importing matlab structs within structs in python

我有 MATLAB 数据文件,其中包含我要导入到 python 的结构中的多个结构。在 MATLAB 中,如果 main_struct 是主文件,我可以通过 -

找到我需要的数据
leaf1 = main_struct.tree1.leaf1

leaf2 = main_struct.tree1.leaf2

等等。现在我想在 python 中导入包含结构的 .mat 文件并访问 leaf1leaf2。在 python 中,我可以加载 mat 文件 -

import scipy.io as sio

data = sio.loadmat("main_struct.mat",squeeze_me=True, struct_as_record=False);
tree1 = data.['tree1'];

如何访问 tree1 中的第二个结构?

如果在 MATLAB 中有以下内容

S = struct('tree1', struct('leaf1', {1}, 'leaf2', {2}));
save('filename.mat', '-struct', 'S')

如果将 loadmatstruct_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