【问题标题】:hdf5 multiple extensible tableshdf5 多个可扩展表
【发布时间】:2015-04-07 16:58:18
【问题描述】:

我正在分析大量文件以删除重要的统计信息。分析程序为每个分析的文件创建大约 3000 个长度为 n(大约 100)的双数组以及一个命名相应数组内容的字符串。我想将结果写入 hdf 5 文件,其中每个数组都写入一个名称为相应字符串的表中。为此,我使用以下功能:

#include "hdf5.h"
#include "hdf5_hl.h"
 hid_t       file_id;
 hsize_t     dims[RANK]={1,n};
 herr_t      status;

....

void hdf5_write ( double& array , string arrayname )
{     
 const char * tablename = arrayname.c_str();
 status = H5LTmake_dataset(file_id,tablename,RANK,dims,H5T_NATIVE_DOUBLE,array);
}

这可以很好地分析第一个文件,但是,当一个接一个地分析多个文件时,现有表只是被新数组覆盖,尽管我希望将新数组分别附加到已经存在的表中。这种情况下有 hdf 5 功能吗?

【问题讨论】:

    标签: c++ hdf5


    【解决方案1】:

    恐怕你不能使用高级(H5LT)接口追加。

    这是complete example using the low level interface。它要复杂得多,但它可以让您完全控制。

    或者,如果您认为这太过分了,您可以问问自己,您是否真的需要一个大型数据集而不是多个小型数据集。根据您心目中的应用程序,多个数据集可能只是更好的设计。

    【讨论】:

      猜你喜欢
      • 2021-11-01
      • 2015-11-13
      • 1970-01-01
      • 1970-01-01
      • 2019-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多