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]);
我只想使用 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]);