使用HDF5和C保存复杂数字的最佳方法

时间:2014-07-24 15:20:58

标签: c arrays hdf5 complex-numbers

在性能和易用性方面,使用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);

0 个答案:

没有答案