【发布时间】:2016-07-01 06:12:16
【问题描述】:
是否可以使用特定的内存空间布局将 HDF5 文件中的 3D 数组读入 C++ 中的 1D 数组/向量?
我试过了:
H5File file(file_name, H5F_ACC_RDONLY);
DataSet dataset = file.openDataSet(dataset_name);
DataSpace dataspace = dataset.getSpace();
hsize_t dim[3];
dataspace.getSimpleExtentDims(dim, NULL);
hsize_t memdim[1];
memdim[0] = dim[0] * dim[1] * dim[2];
DataSpace memspace(1, memdim);
vector<float> data_out(memdim[0]);
// set the memory layout to 1D
dataset.read(data_out.data(), PredType::NATIVE_FLOAT, memspace, dataspace);
但是向量没有正确填充。我认为可能有一个默认映射。也许没有?如何指定一个?
【问题讨论】:
-
为什么说“向量没有正确填充”?也许这就是你索引它的方式是错误的?