cmake c++ hdf5,hdf读取
适用于存在组的情况 Eigen::VectorXd &vd为Eigen中的数据类型,需要另行配置
#include <Eigen/Dense>
#include "netcdfcpp.h"
#include "hdf5.h"
#include "H5Cpp.h"
int read(Eigen::VectorXd &vd, const char *file_path, const char *g_name, const char *d_name)
{
//获取文件
H5::H5File file(file_path, H5F_ACC_RDONLY);
//获取组
H5::Group group = file.openGroup(g_name);
//获取存储空间
H5::DataSet dataset = group.openDataSet(d_name);
H5::DataSpace fs = dataset.getSpace();
//获取维度数
int dimNums = fs.getSimpleExtentNdims();
hsize_t * dims = new hsize_t[dimNums];
//H5::DataSpace myspace(dimNums, dims);
//读取每个维度的大小
fs.getSimpleExtentDims(dims);
//创建接收
//遍历dims的数量
int vds = 1;
for (size_t i = 0; i < dimNums; i++)
{
vds = vds * dims[i];
}
vd.resize(vds);
dataset.read(vd.data(), H5::PredType::NATIVE_DOUBLE);
// cout << vd.size() << endl;
// for (int i = 0; i < vd.size(); i++)
// {
// cout << vd[i] << endl;
// }
delete[]dims;
fs.close();
group.close();
file.close();
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人