2015-02-07 51 views
0

我正在分析大量的文件以去掉重要的統計信息。分析程序爲每個分析文件創建約3000個長度爲n的雙數組(約100個)以及一個用於命名相應數組內容的字符串。我想將結果寫入一個hdf 5文件,其中每個數組寫入一個表,其名稱是各自的字符串。對於我使用下面的函數:hdf5多個可擴展表

#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功能?

回答

0

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

這是complete example using the low level interface。它要複雜得多,但它可以讓你完全控制。

或者如果您認爲這太過於誇張,您可以問自己,您是否真的需要一個大型數據集與多個小型數據集。根據您的應用程序,多個數據集可能只是一個更好的設計。