在 MATLAB 中读取 HDF5 数据集的一些特定元素

Posted

技术标签:

【中文标题】在 MATLAB 中读取 HDF5 数据集的一些特定元素【英文标题】:Read some particular elements of a HDF5 dataset in MATLAB 【发布时间】:2015-12-30 10:38:51 【问题描述】:

我有一个由 MATLAB 生成的 HDF5 数据集,其中一个数据集的大小为 [1 12672 1 220000],遵循以下模式:[高度宽度通道 NumberOfInstances]。换句话说,我将 220000 个向量样本重新整形为 4-D 数据结构。现在,我想在 MATLAB 中读取所有向量样本的第一个元素,并对它们进行一些操作,比如平均。 这是我尝试过的事情(不确定是否正确),但我陷入了错误池:

data = h5read('trial.h5','/data',[1 1 1 1],[220000,1,1,220000]);

感谢任何帮助。

【问题讨论】:

你用谷歌搜索过“hdf5 read matlab”吗?给:uk.mathworks.com/help/matlab/ref/hdf5read.html 是的,我已经使用过高级 hdf5 命令,但我不知道如何进行索引以读取所有向量的第一个元素。 显示你当时的尝试! 这是我尝试过的,但我遇到了很多错误:data = h5read('trial.h5','/data',[1 1 1 1],[220000,1,1, 220000]); 那行不通?理论上应该... 【参考方案1】:

您的数据集大小为[1 12672 1 220000]

您正在使用 data = h5read('trial.h5','/data',[1 1 1 1],[220000,1,1,220000]); 访问它

您要访问的数据量是[220000,1,1,220000]

你没有那么多数据!!!第一个维度只是1。您无法访问第一个维度的第一个 220000 值,因为它们不存在,只有 1

【讨论】:

以上是关于在 MATLAB 中读取 HDF5 数据集的一些特定元素的主要内容,如果未能解决你的问题,请参考以下文章

在 Matlab 中转置 Python 创建的 HDF5 数据集

使用 HDF5 保存要在 C++ 中读取的 MATLAB 结构

将 hdf5 matlab 字符串加载到 Python 中

获取 HDF5 数据集的维度

如何从 C++ 中的 hdf5 文件中读取数据块?

来自多个 HDF5 文件/数据集的链数据集