0

虽然它可能看起来类似于一个已经存在的问题:is-it-possible-to-update-dataset-dimensions-in-hdf5-file-using-rhdf5-in-r但它们并不完全相同。

在 RHDF5 文档中,我们可以定义在使用 h5createDataset()(使用 maxdims 参数)创建数据集时数据集可以具有的最大维度。但是,如果我们事先不知道数据集的维度怎么办,例如我们可能会遇到数据集的大小不断增加的情况,因此我们不知道数据集可以达到的最大维度。

在上面提到的问题的答案中,提到它可以在数据空间和 HDF5 常量的帮助下完成。

谁能提供一些关于如何使用 HDF5 常量和数据空间来做到这一点的想法?

4

1 回答 1

1

在对函数进行一些实验时h5createDataset(),我找到了一种方法:

> library(rhdf5)

> fid <- H5Fcreate('test.h5')

> h5createGroup(fid,'1')
[1] TRUE

> h5createDataset(fid,'1/1',dims = c(2,2,2),maxdims = c(Inf,Inf,Inf))
[1] TRUE
Warning message:
  In H5Screate_simple(dims, maxdims) :
  NAs introduced by coercion to integer range

> arr <- array(c(1:8),c(2,2,2))

> h5write(arr,fid,'1/1')

> h5read(fid,'1/1')
, , 1

     [,1] [,2]
[1,]    1    3
[2,]    2    4

, , 2

     [,1] [,2]
[1,]    5    7
[2,]    6    8

如果我在某处错了或者有更好的方法,请纠正我。

于 2016-04-10T06:26:39.957 回答