簡體   English   中英

C++ 代碼創建空 HDF5 文件而不是數據集

[英]C++ Code Creating Empty HDF5 File Instead of Dataset

我的 class 中有以下代碼來創建一個帶有零矩陣的 HDF5 文件。 但是,它會創建一個完全沒有數據集的空 hdf5 文件。 如何將數據集寫入文件?

#include <H5Cpp.h>
#include <Eigen/Dense>

H5::H5File file("test_save.hdf5", H5F_ACC_TRUNC);
hsize_t dims[2] {10, 5};


std::cout << dims[0] << " " << dims[1] << std::endl;
std::cout << data_set_name << std::endl;
H5::DataSpace dataspace(2, dims);

auto dataset = file.createDataSet("test_dataset", H5::PredType::NATIVE_DOUBLE, dataspace);
Eigen::MatrixXd temp(10, 5);
temp.setZero();
dataset.write(temp.data(), H5::PredType::NATIVE_DOUBLE);

dataset.close();
file.close();

不確定如何使用 H5Cpp 庫完成此操作,但使用HDFql可以解決如下問題(請注意,寫入的數據將為零,因為您調用temp.setZero(); ):

#include <HDFql.hpp>
#include <Eigen/Dense>

HDFql::execute("CREATE TRUNCATE FILE test_save.hdf5");

HDFql::execute("CREATE DATASET test_save.hdf5 test_dataset AS DOUBLE(10, 5)")

Eigen::MatrixXd temp(10, 5);
temp.setZero();

sprintf(script, "INSERT INTO test_save.hdf5 test_dataset VALUES FROM MEMORY %d", HDFql::variableTransientRegister(temp.data()));

HDFql::execute(script);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM