我想使用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.
我不明白是什么原因。 谢谢
答案 0 :(得分:1)
按照关于h5read参数的说法,您需要调整count
中的值以反映新的进步。
现在,您不想在第二维中读取100个元素,因为您最终将读取不存在的元素400。
鉴于此,您可能要尝试:
tempp = h5read(nameCur,namedataset,[1 1 1 1],[160 25 200 10],[1 4 1 1]);