我需要将分层数据结构存储到 hdf5 中,其中大多数叶节点是非数组类型(字符串或标量),其中只有少数是同构数组。这些数据看起来类似于:
/simulation-20130312_13:33p1435
+- input
| +- gravity = 9.81
| +- timeScale = 1.0
| +- userTitle = 'real'
| +- flowRates = [ 1.1, 2.1 ]
| +- material
| +- density = 1234.2
| +- young = 1.123e6
| +- temp = 290.2
+- finished = '20130312_16:21'
+- host = 'efflux.local'
+- series
+- t = [0,1e-5,2e-5,...,3.4e-4]
+- Ek = [0,...]
/simulation-20130312_13:55p1657
...
...
每个模拟下的数据结构相似,但不一定相同,所以我认为使用表格是不可能的。
我是否应该为所有叶子创建组,并始终将值设置为附加到该叶子的数组,如果值为标量,则使用 1x1 数组?我应该对除真实数组之外的所有数据使用组属性吗?这不会让使用这些文件的人感到困惑吗?
我几乎没有使用 hdf5 的经验;数据的数量会比较少,此时对效率没有太多关注——重要的是能够轻松地将数据导入Matlab。