是否可以使用特定的memspace布局将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);
但是矢量未正确填充。我以为可能有默认映射。也许没有?我该如何指定一个?
答案 0 :(得分:0)
事实证明,即使你读入一维数组,你仍然会将3D数据空间传递给read
的{{1}}方法。
dataset