0

我有 MATLAB 数据文件,其中包含我想导入 python 的结构中的多个结构。在 MATLAB 中,如果main_struct是主文件,我可以通过以下方式获取所需的数据 -

leaf1 = main_struct.tree1.leaf1

leaf2 = main_struct.tree1.leaf2

等等。现在我想在 python 中导入包含 struct 的 .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

4

1 回答 1

4

如果在 MATLAB 中你有以下

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

如果使用loadmatwith 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
于 2016-04-14T18:01:26.677 回答