【问题标题】:h5read function in MatlabMatlab中的h5read函数
【发布时间】:2019-06-21 14:52:51
【问题描述】:

我想在 Matlab 中使用 h5read 函数读取 HDF5 文件的部分数据集。特别是在其中 1 个维度中,我只想每 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]);

效果不错!

但是当我最终想从第二维读取每第四个值时

    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.

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

【问题讨论】:

    标签: matlab hdf5


    【解决方案1】:

    按照您所说的 h5read 参数,您需要调整 count 中的值以反映新的步幅。

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

    鉴于此,您可能想尝试一下:

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

    【讨论】:

      猜你喜欢
      • 2014-05-30
      • 1970-01-01
      • 1970-01-01
      • 2015-03-17
      • 2013-12-27
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多