我正在尝试使用 hdf5 写出分子动力学模拟产生的 (x,y,z) 坐标。 API 非常清楚如何执行此操作。我的问题是关于编写模拟的参数。我需要向 hdf5 文件写入大量常量,比如大约 100 个。我认为这就是属性的用途。这样对吗?我的问题是属性 API 为此有些麻烦。我必须创建大量标量属性,指定它们的类型和维度(大多数情况下为 1),然后编写它们。我不得不写很多代码。常量可以是 int
、float
、unsigned int
,有时还有一些我创建的自定义类型。
有更好的方法吗?
最佳答案
是的,属性是写入此信息的方式。
API 可能看起来相当复杂,因为属性与数据集共享大部分语义。您可以在可以通过数据集指定的属性中使用任何类型或形状。属性属性唯一没有的是压缩和分块。 (属性也不能包含属性!)
为了简化编码,您可以创建一个辅助函数。如果您知道(例如)您的所有属性都是 4 字节的小端标量,那么您的辅助函数只需要父 ID、名称和值。
关于c++ - 如何智能地将多个参数写入一个hdf5文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38157948/