Matlab中的h5read函数

时间:2019-01-28 15:07:14

标签: matlab hdf5

我想使用Matlab中的h5read函数仅读取HDF5文件的数据集的一部分。特别是在其中一个维度中,我只希望每4个值读取一次。

我可以读取整个数据集为:

tempp = hdf5read(nameCur,namedataset);

其尺寸:160x100x200x10。

接下来,当我想使用“开始”和“计数”属性读取整个数据集时,它可以正常工作:

tempp = h5read(nameCur,namedataset,[1 1 1 1],[160 100 200 10]);

然后我也想使用“ stride”属性读取所有数据集:

    tempp = h5read(nameCur,namedataset,[1 1 1 1],[160 100 200 10],[1 1 1 1]);

效果很好!

但是当我最终要从第二维读取每第4个值

    tempp = h5read(nameCur,namedataset,[1 1 1 1],[160 100 200 10],[1 4 1 1]);

它给我错误:

Error using h5readc
The index arguments exceed the size of the dataset.

我不明白是什么原因。 谢谢

1 个答案:

答案 0 :(得分:1)

按照关于h5read参数的说法,您需要调整count中的值以反映新的进步。

现在,您不想在第二维中读取100个元素,因为您最终将读取不存在的元素400。

鉴于此,您可能要尝试:

tempp = h5read(nameCur,namedataset,[1 1 1 1],[160 25 200 10],[1 4 1 1]);