如何使用hd5f访问*.mat文件中的嵌套结构



我试图访问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设置了更多的障碍。

相关内容

  • 没有找到相关文章

最新更新