在 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 文件并访问 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
中的第二个结构?
如果在 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
我有 MATLAB 数据文件,其中包含我要导入到 python 的结构中的多个结构。在 MATLAB 中,如果 main_struct
是主文件,我可以通过 -
leaf1 = main_struct.tree1.leaf1
leaf2 = main_struct.tree1.leaf2
等等。现在我想在 python 中导入包含结构的 .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
中的第二个结构?
如果在 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