Matlab 中的 h5read 函数

h5read function in Matlab

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

我可以读取整个数据集:

tempp = hdf5read(nameCur,namedataset);

它的尺寸:160x100x200x10。

接下来,当我想使用 "start" 和 "count" 属性读取整个数据集时,它工作正常:

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.

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

根据您所说的关于 h5read 的参数,您需要调整 count 中的值以反映新的步幅。

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

鉴于此,您可能想尝试:

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