在性能和易用性方面,使用HDF5和C保存复数数组的推荐方法是什么?我需要保存一大堆复杂的数字,我的用户将使用C,Python或Matlab读取该文件。
我在this post中读到了将它们保存为复合数据类型的建议。我还阅读了一些关于使用两个独立数组的建议,一个用于实数,一个用于虚数。
修改1:
我决定使用评论中建议的示例:
Typedef struct {
double re; /*real part */
double im; /*imaginary part */
} complex_t;
complex_t tmp; /*used only to compute offsets */
hid_t complex_id = H5Tcreate (H5T_COMPOUND, sizeof tmp);
H5Tinsert (complex_id, "real", HOFFSET(tmp,re),
H5T_NATIVE_DOUBLE);
H5Tinsert (complex_id, "imaginary", HOFFSET(tmp,im),
H5T_NATIVE_DOUBLE);