使用 Visual C++ 将二维数组 int[n][m] 写入 HDF5 文件

2024-01-09

我刚刚开始使用 HDF5,希望得到有关以下内容的一些建议。

我有一个二维数组:data[][]传递到一个方法中。该方法如下所示:

void WriteData( int data[48][100], int sizes[48])

数据的大小实际上不是 48 x 100,而是 48 x size[i]。 IE。每行的长度可能不同!在我正在处理的一种简单情况下,所有行的大小相同(但不是 100),因此您可以说该数组是 48 X 大小 [0]。

如何最好地将其写入 HDF5?

我有一些工作代码,其中循环 0 到 48 并为每一行创建一个新的数据集。

就像是:

for (int i = 0; i < 48; i++)
{
   hsize_t      dsSize[2];
   dsSize[0] = 48;
   dsSize[1] = sizes[0];  // use sizes[i] in most general case
   // Create the Data Space
   DataSpace dataSpace = DataSpace(2, dsSize);
   DataSet dataSet = group.createDataSet(dataSetName, intDataType, dataSpace);
   dataSet.write(data[i], intDataType);
}

有没有一种方法可以将所有数据一次性写入一个 DataSet 中?也许一种解决方案适用于所有行长度相同的更简单情况,另一种解决方案适用于参差不齐的行?

我尝试了一些方法但没有成功。我调用了 dataSet.write(data, intDataType),即我将整个数组扔给它。我似乎在文件中得到了垃圾,我怀疑是因为存储数据的数组实际上是 48x100,而我只需要其中的一小部分。

我突然想到我也许可以使用 double ptr int** 或 vector> 但我坚持这一点。据我所知,“写入”需要一个 void* ptr。另外,我希望该文件“看起来正确”。 IE。包含所有数据行的一个巨大行是不可取的,如果我必须走这条路,有人需要传达一种灵活的方式来存储信息,该信息将允许我从文件中读回数据(可能将行长度存储为属性) ?)。

也许我真正的问题是找到重要用例的 C++ 示例。

任何帮助深表感谢。

Dave


您可以使用以下方法来做到这一点变长数组 http://www.hdfgroup.org/HDF5/doc/cpplus_RM/class_h5_1_1_var_len_type.html如果您的数据是向量的向量(这似乎对您的用例有意义):

void WriteData(const std::vector< std::vector<int> >& data)
{
    hsize_t dim(data.size());
    H5::DataSpace dspace(1, &dim);
    H5::VarLenType dtype(H5::PredType::NATIVE_INT);
    H5::DataSet dset(group.createDataSet(dataSetName, dtype, dspace));
    hvl_t vl[dim];
    for (hsize_t i = 0; i < dim; ++i)
    {
        vl[i].len = data[i].size();
        vl[i].p = &data[i][0];
    }
    dset.write(vl, dtype);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Visual C++ 将二维数组 int[n][m] 写入 HDF5 文件 的相关文章

  • 进程何时获得 SIGABRT(信号 6)?

    C 中进程获得 SIGABRT 的场景有哪些 该信号是否始终来自进程内部 或者该信号可以从一个进程发送到另一个进程吗 有没有办法识别哪个进程正在发送该信号 abort 向调用进程发送SIGABRT信号 就是这样abort 基本上有效 abo
  • asp.net 文本框文本模式数字,仅允许数字

    我只是想知道 ASP NET 中是否有一种方法只允许文本框中的数字textmode number 当我使用这个时
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • 如何在 Android NDK 中创建新的 NativeWindow 而无需 Android 操作系统源代码?

    我想编译一个 Android OpenGL 控制台应用程序 您可以直接从控制台启动 Android x86 运行 或者从 Android x86 GUI 内的 Android 终端应用程序运行 这个帖子 如何在 Android NDK 中创
  • 为什么要序列化对象需要 Serialized 属性

    根据我的理解 SerializedAttribute 不提供编译时检查 因为它都是在运行时完成的 如果是这样 那么为什么需要将类标记为可序列化呢 难道序列化器不能尝试序列化一个对象然后失败吗 这不就是它现在所做的吗 当某些东西被标记时 它会
  • 从 MVC 迁移到 ASP.NET Core 3.1 中的端点路由时,具有角色的 AuthorizeAttribute 不起作用

    我正在尝试将我的项目从 UseMVC asp net core 2 2 兼容样式 升级到 UseEndpoint Routing 并且我的所有请求都被重定向到我的验证失败页面 它与声明有关 如果我删除 Authorize Roles Adm
  • POCO HTTPSClientSession 发送请求时遇到问题 - 证书验证失败

    我正在尝试使用 POCO 库编写一个向服务器发出 HTTPS 请求的程序 出于测试目的 我正在连接到具有自签名证书的服务器 并且我希望允许客户端进行连接 为了允许这种情况发生 我尝试安装InvalidCertificateHandler这是
  • 暂停下载线程

    我正在用 C 编写一个非常简单的批量下载程序 该程序读取要下载的 URL 的 txt 文件 我已经设置了一个全局线程和委托来更新 GUI 按下 开始 按钮即可创建并启动该线程 我想要做的是有一个 暂停 按钮 使我能够暂停下载 直到点击 恢复
  • ASP MVC:服务应该返回 IQueryable 的吗?

    你怎么认为 你的 DAO 应该返回一个 IQueryable 以便在你的控制器中使用它吗 不 您的控制器根本不应该处理任何复杂的逻辑 保持苗条身材 模型 而不是 DAO 应该将控制器返回给视图所需的所有内容 我认为在控制器类中看到查询 甚至
  • 生产代码中的 LRU 实现

    我有一些 C 代码 需要使用 LRU 技术实现缓存替换 目前我知道两种实现LRU缓存替换的方法 每次访问缓存数据时使用时间戳 最后比较替换时的时间戳 使用缓存项的堆栈 如果最近访问过它们 则将它们移动到顶部 因此最后底部将包含 LRU 候选
  • 将构建日期放入“关于”框中

    我有一个带有 关于 框的 C WinForms 应用程序 我使用以下方法将版本号放入 关于 框中 FileVersionInfo GetVersionInfo Assembly GetExecutingAssembly Location F
  • 当模板类不包含可用的成员函数时,如何在编译时验证模板参数?

    我有以下模板struct template
  • 当我“绘制”线条时,如何将点平均分配到 LineRenderer 的宽度曲线?

    我正在使用线条渲染器创建一个 绘图 应用程序 现在我尝试使用线条渲染器上的宽度曲线启用笔压 问题在于 AnimationCurve 的 时间 值 水平轴 从 0 标准化为 1 因此我不能在每次添加位置时都在其末尾添加一个值 除非有一个我不知
  • 获取 2 个数据集 c# 中的差异

    我正在编写一个简短的算法 它必须比较两个数据集 以便可以进一步处理两者之间的差异 我尝试通过合并这两个数据集并将结果更改放入新的数据集来实现此目标 我的方法如下所示 private DataSet ComputateDiff DataSet
  • 在类的所有方法之前运行一个方法

    在 C 3 或 4 中可以做到这一点吗 也许有一些反思 class Magic RunBeforeAll public void BaseMethod runs BaseMethod before being executed public
  • 结构体指针的动态数组

    我必须使用以下代码块来完成学校作业 严格不进行任何修改 typedef struct char firstName char lastName int id float mark pStudentRecord pStudentRecord
  • 使用 C# 从 DateTime 获取日期

    愚蠢的问题 给定日期时间中的日期 我知道它是星期二 例如我如何知道它的 tue 2 和 mon 1 等 Thanks 您正在寻找星期几 http msdn microsoft com en us library system datetim
  • 使用 CSharpCodeProvider 类编译 C# 7.3 的 C# 编译器版本是什么?

    我想使用 Microsoft CSharp CSharpCodeProvider 类来编译 C 7 3 代码 编译器版本在 IDictionary 中指定 在创建新的 CSharpCodeProvider 时将其作为输入 例如 Compil
  • 使用 Crypto++ 获取 ECDSA 签名

    我必须使用 Crypto 在变量中获取 ECDSA 签名 我在启动 SignMessage 后尝试获取它 但签名为空 我怎样才能得到它 你看过 Crypto wiki 吗 上面有很多东西椭圆曲线数字签名算法 http www cryptop
  • 匿名结构体作为返回类型

    下面的代码编译得很好VC 19 00 23506 http rextester com GMUP11493 标志 Wall WX Za 与VC 19 10 25109 0 标志 Wall WX Za permissive 这可以在以下位置检

随机推荐

  • 将打字稿输出捆绑在单个文件中

    我在源文件夹中有一堆遵循 ecmascript 2015 模块模式的打字稿文件 我有 tsconfig 设置将转换后的文件输出到 lib 文件夹 效果很好 但是有什么方法可以将它们捆绑在一起形成一个可以在浏览器中使用的文件吗 我希望我的模块
  • Pinterest 无法获取图像

    尝试实现 固定它 按钮 但它会为每个图像返回以下问题 我们在整个网站上使用 SSL 我想知道这是否相关 任何想法 route pattern resource name method error api error code 1 messa
  • DropDownList OnSelectedIndexChange 到第 0 个索引,不带 ViewState

    我确实关注了这篇文章真正理解 ViewState http weblogs asp net infinitiesloop archive 2006 08 03 truly understanding viewstate aspx 顺便说一句
  • RPM 的名称-版本-发布的规则是什么?

    想象一个名为abc 123 1 x86 rpm 我发现其中有一个错误 但我不知道如何命名new包裹 Maybe abc 123 2 x86 rpm 但是如果有一个怎么办xyz rpm依赖于取决于abc 123 1 Maybe abc 123
  • ffmpeg转码为直播流

    我需要在 html 视频标签中显示 ip 摄像机流 我已经弄清楚如何从 rtsp 流转码到文件 如下所示 ffmpeg i rtsp user password ip s 640x480 tmp output mp4 现在我需要能够在这样的
  • 基于令牌的数据库身份验证失败,并显示“用户‘NT AUTHORITY\ANONYMOUS LOGON’登录失败”。

    我在基于令牌的数据库身份验证工作时遇到问题 使用 Active Directory 密码连接可以正常工作 但是当使用令牌连接时 我收到以下错误 用户 NT AUTHORITY ANONYMOUS LOGON 登录失败 这个问题已经讨论过了在
  • Admob 中介 - 发布商 ID 与中介 ID

    我想知道 Admob 中介的正确范例是什么 到目前为止 我已经有了一个普通的 AdView 横幅 这就是我认为它应该如何工作的 onFailedToReceiveAd 捕获此事件 这意味着 admob 无法提供广告 使用中介 ID 创建新的
  • 使用 MinGW 的 Eclipse CDT 不在控制台中输出

    我有一台 Windows 7 64 位 PC 并且正在尝试安装免费的 C IDE 因此我选择使用 CDT 安装 Eclipse Helios 对于 g make 和 gdb 我根据本教程安装了 msys 和 mingw http wiki
  • CoffeeScript 在更改和加载时动态选择表单字段

    我有一个 Rails 应用程序 我试图根据表单中选择的区域来选择设施列表 到目前为止 我已经实现了 group collection select 以及一些 CoffeeScript 来执行此操作 它在创建新记录和选择区域时起作用 行为是仅
  • py2neo 中的批处理

    我已经开始使用 Node4j 并且正在探索一些批处理 但不幸的是 我在创建节点之间的关系时遇到了一些问题 我的问题如下 我有一个从文件中读取的网站和用户列表 我可能在该文件中有重复的网站和用户 所以我不想为这些重复的条目插入新节点 但由于文
  • 如何将一些文本信息封装在图像中并使用 MATLAB 提取它?

    new img convert img text img text convert back new img 有人可以用 MATLAB 的内置图像来说明吗 我相信你正在寻找隐写术 http en wikipedia org wiki Ste
  • 更改 Yii2 视图中的布局文件

    我正在使用 Yii2 做一个小项目 假设我在视图中有相同的布局 页眉 页脚 例如site 除了login php在此看来 我想在这个文件中使用不同的页眉 页脚或没有页眉 页脚 我可以做什么来仅从此视图文件中删除页眉 页脚 我所能做的就是在不
  • htmlagilitypack 和动态内容问题

    我想创建一个网络 scraper 应用程序 并且我想使用网络浏览器控件 htmlagilitypack 和 xpath 来完成它 现在我设法创建 xpath 生成器 我使用网络浏览器用于此目的 它工作正常 但有时我无法动态获取 通过 jav
  • 当包含 Ice 服务器时,WebRTC 陷入连接状态(远程候选者甚至通过 LAN 也会导致问题)

    我暂时创建了一个RTCPeerConnection没有任何iceServers在尝试解决一个问题时上一期 https stackoverflow com questions 62020695 webrtc stuck in connecti
  • 如何正确访问当前AppDomain的PrivateBinPath属性?

    由于 AppDomain AppendPrivatePath 已过时 我试图弄清楚如何为项目中的当前 AppDomain 指定 PrivateBinPath 而不需要启动一个全新的 AppDomain 并且稍后能够访问它 我知道我可以在 A
  • 如何完全禁用 Django 管理员的身份验证

    我有一个 Django 服务器 使用 PostGis 我想禁用与身份验证相关的所有内容 进入管理员时无需进行身份验证 在管理中隐藏用户 组 在网上搜索后我尝试了以下组合this https stackoverflow com a 40008
  • 如何使用button props动态禁用antd modal的按钮

    我有一个 antd Modal 我正在尝试验证一个字段并为其提供验证 如何根据验证启用 禁用 确定 按钮 如果验证成功 则应启用按钮 否则应禁用按钮
  • 随处使用 Visual Studio 命令提示符工具

    如何使用 VS 命令提示符中包含的工具 Programs MS Visual Studio 2008 Visual Studio Tools Visual Studio 2008 Command Prompt 从任何命令提示符 即不调用vc
  • 自动将产品分配到 WooCommerce 中定义的产品类别

    在 Woocommerce 中 如果产品具有特定的自定义字段值 使用高级自定义字段插件生成此字段 我会尝试自动将给定的产品类别分配给产品 In my functions php我有 function auto add category pr
  • 使用 Visual C++ 将二维数组 int[n][m] 写入 HDF5 文件

    我刚刚开始使用 HDF5 希望得到有关以下内容的一些建议 我有一个二维数组 data 传递到一个方法中 该方法如下所示 void WriteData int data 48 100 int sizes 48 数据的大小实际上不是 48 x