创建一个HDF5数据集

26日视图(30天)
乔纳森
乔纳森 2012年7月25日
编辑: 每•艾萨克森 2015年5月26日
嗨,我想创建一个数据集包含一个HDF5 .h5文件。我有困难创造HDF5数据集。我想数据集包含一个结构体,称为“数据”。“数据”是1 x1结构包含一个6464 x2560翻倍,4个6464 x1双打,一个1 x4359结构,一个1 x1结构,一个1 x200型结构,一个6464 x1双,一个303 x1双,1 4 x4的细胞,和一个1 x440单元格。

答案(2)

每•艾萨克森
每•艾萨克森 2012年7月26日
编辑:每•艾萨克森 2012年7月27日
Matlab结构不能被存储在一个HDF5文件作为一个数据集 (除了简单的几个领域,是基本数据类型的值,见hdf5复合数据类型)
HDF5复合数据类型为用户指南中所描述的:“2.2.7。创建和定义复合数据类型”。但是,我不确定它是划算的。 (是的,需要Matlab的低水平HDF5功能)
Matlab具有高水平和低水平HDF5的支持。万博1manbetx我建议你使用高级功能或者至少自己先试一试。我有尝试(高、低水平)与时间序列长度(64000)。我的测试h5-file是1.2 gb。
你需要一些“用户故事/用例”从阅读和写作,让你决定。
快速产生HDF5-file是
保存(“h5test.mat”,“数据”,“-v7.3”)
然后你可以探索TMW存储结构的方法
h5disp (“h5test.mat”),信息= h5info (“h5test.mat”);
这可能是你所需要的。matfile函数,这个文件提供了一个接口,这比保存/加载更灵活。它提供了有限的方式读写分段。
推荐- - - - - - - - - - - -继续
我的初步配方:
  • 把结构、数据作为一个树
  • 内部节点,字段,h5-file转化为组织
  • 树叶,字符串和数值数组数据,将数据集
  • 写每片叶子和一个单独的h5write-command(高度)。好的属性,如果数据数组的树叶都相当大。成千上万的标量树叶将会是一个问题——我猜。
  • 如果你有“写一次读多次”使用固定大小的数据集,即相邻分块。连续数据集似乎需要更少的Windows文件缓存和内存时表现出更好的性能是有限的。
推荐- - - - - - 1 - - -回应置评
结构,”结构体包含结构在结构内部结构在结构”,不能存储在一个 复合数据类型 HDF5。我不应该提到它。它可能是有用的对于简单的结构和一些字段,是基本数据类型的值(C)。(我不知道“复合数据类型”可以嵌套,但是我真的“气味”。)
Matlab的低水平HDF5-functions小记录并不是“matlabish”。另一方面高水平HDF5-functions (R2012a)使用简单和令人惊讶的是(读让我吃惊)强大(表达性和性能)。
我看到两个可能性:
  1. 保存(h5test。席”、“数据”、“-v7.3”)
  2. 我的初步配方结构(见上图)。类似的方法需要细胞阵列。
在引擎盖下面, 保存 适用于类似于“我的初步配方”。
我肯定会尝试 保存 第一。我想检查是否值得
2的评论
每•艾萨克森
每•艾萨克森 2012年7月27日
参见上面的回答

登录置评。


约翰
约翰 2012年7月26日
编辑:每•艾萨克森 2015年5月26日
HDF5高度例程H5CREATE和H5WRITE不会允许化合物数据集(结构),所以你需要做低层次的接口。看看这个线程从几天前。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!