我试图访问matlab文件(*.mat(的以下结构:
父matlab结构
它包含以下一组结构
嵌套结构
我尝试使用hd5fpython-lib访问每个结构中的字段
在此处输入图像描述
使用以下代码:
mat_dict = h5py.File(file_path, 'r')
result = mat_dict['JKPRR']['results']['ChangingKnob'][0]['result']
但显然我无法深入了解:
result = mat_dict['JKPRR']['results']['ChangingKnob'][0]
有人知道我怎样才能去更深的田野吗?
解决方案&关于以下问题的讨论:
https://github.com/h5py/h5py/issues/1668
首先,简单的一点是:看起来ChangingKnob数据集是2D的,所以要得到一个项目,你需要两个索引:
mat_dict['JKPRR']['results']['ChangingKnob'][0, 0]
这是等效的,但更容易阅读:
mat_dict['JKPRR/results/ChangingKnob'][0, 0]
看起来Matlab正在数据集中存储HDF5引用(一种链接(,因此您需要遵循引用:
> ref = mat_dict['JKPRR/results/ChangingKnob'][0, 0] dataset =
> mat_dict[ref]
希望在那之后,你可以做数据集[结果]来访问一个字段,除非Matlab设置了更多的障碍。