我有一个复合类型的HDF5文件(int,double,double)。目前我在一个操作中通过将结果存储在the example in the documentation之后的结构数组中来阅读它。
但我更愿意将三个部分中的每一个保存在不同的数组中,所以我想提供3个指针,(int *,double *,double *)并直接在3个数组中读取数据而不复制数据
是否有人建议如何做到这一点?
答案 0 :(得分:1)
我认为不可能直接。
您可以轻松地将结构数组复制到循环中的三个数组中:
int a[n];
double b[n], c[n];
for (int i = 0; i < n; i++)
{
a[i] = s[i].a;
b[i] = s[i].b;
c[i] = s[i].c;
}
假设s
是一个struct { int a; double b; double c; }
(常量)大小n
的数组,但我觉得你正在寻找直接的HDF5方式...
答案 1 :(得分:0)
您可以在复合类型中定义单个字段。假设您的数据集以fatal: /.idea: '/.idea' is outside repository
打开,其中包含三个字段dset
,"a","b","c"
元素,然后
LENGTH
这应该是你要求的。也许你已经通过“三次读取文件”这样做了吗?