HDF5文件

在使用Matlab对数据进行预处理时,遇到了内存不足的问题,因为数据量太大,在处理完成以前内存已经爆满。如果使用Matlab的.m文件对文件进行存储的话,则需要将数据分割成多个文件,对后续的处理造成了不便。HDF5文件则是一种灵活的文件存储格式,有一个最大的好处就是在Matlab的处理过程中可以对它进行扩展写入,也就是说不是所有数据处理完以后一次写入,而是边处理边写入,极大的降低了对系统内存的要求。

HDF5文件类似与一个文件系统,使用这个文件本身就可以对数据集(dataset)进行管理。例如下图所示,HDF5文件中的数据集皆存储根目录/,在根目录下存在多个group,这样一些group类似与文件系统的文件夹,在它们可以存储别的group,也可以存储数据集。

HDF5文件格式

对于每一个dataset 而言,除了数据本身之外,这个数据集还会有很多的属性 attribute,。在hdf5中,还同时支持存储数据集对应的属性信息,所有的属性信息的集合就叫做metadata;

MetaData

使用Matlab操作HDF5文件

使用Matlab创建HDF5文件

使用Matlab创建HDF5文件的函数是h5create,使用如下:

h5create(filename,datasetname,[30, 30 , 3, inf],'Datatype','single','ChunkSize',[30,30,3,1000])

filename为h5文件的文件名(不知道什么问题,在我的电脑上使用时,这个函数无法指定路径)。

datasetname则为数据集的名字,数据集名称必须以/开头,比如/G。

[30,30,3,inf]位数据集的大小,比如我的数据集为30x30大小的彩色图像,并且我希望数量能够扩展,那么就可以指定最后以为度为inf,以表示数量不限。

Datatype为数据类型

ChunkSize为数据存储的最小分块,为了让数据能够具有扩展性,所以为新来的数据分配一定的空间大小,对于一个非常大的数据,这个值设置大一点比较好,这样分块就会少一点。比如我的数据集中,30x30大小的彩色图像大概有10万个左右,那么1000个存储在一起较为合适,则chunksize设置为:[30,30,3,1000]。

使用Matlab写入HDF5

在创建了hdf5文件和数据集以后,则可以对数据集进行写操作以扩展里面的数据。使用Matlab写入HDF5文件的函数是h5write,使用如下:

h5write(fileName,datasetName,data,start,count);

fileName: hdf5文件名

datasetName:数据集名称,比如/G

data:需要写入的数据,数据的维度应该与创建时一致,比如,设置的数据集大小为[30,30,3,inf],那么这里的data的前三个维度就应该是[30, 30, 3],而最后一个维度则是自由的

start:数据存储的起点,如果是第一次存,则应该为[1, 1, 1, 1](注意数据维度的一致性),如果这次存了10000个样本,也就是[30,30,3,10000],那么第二次存储的时候起点就应该为[1,1,1,10001]

count存储数据的个数,同样要根据维度来(其实就是数据的维度),这里为[30,30,3,10000]

使用Matlab查看HDF5文件信息

Matlab中可以使用h5info函数来读取HDF5文件的信息:

fileInfo = h5info(fileName);

然后通过解析fileInfo结构,则可以得到HDF5文件中的数据集名称、数据集大小等等必要信息。

使用Matlab读取HDF5中的数据集

Matlab中可以使用h5read函数来读取HDF5文件:

data = h5read(filename,datasetname,start,count)

filename:HDF5文件文件名

datasetname:数据集名称

start:从数据集中取数据的其实位置

count:取的数据数量

还是以上面的30×30的彩色图像为例,如果每次需要取1000个,那么第一次取时,start应该设置为[1, 1, 1, 1] ,count设置为:[30, 30 ,3 1000]。第二次取值时,start则应该设置为[1, 1, 1, 1001],count则设置为:[30, 30, 3, 1000]。

matlab查看hdf5数据,Matlab 操作 HDF5文件相关推荐

  1. 用matlab读csv数据_Matlab读取csv文件csvread函数的使用

    3.7 (3) 今天来说下如何使用Matlab读取excel的csv文件,这个有什么用呢?想必理科生大概率都会用到示波器,去抓取一些电信号或者光信号,我们从示波器导出来的就是csv文件或者图片文件,而 ...

  2. 使用Matlab对PIV数据中的dat文件进行读取数据并求平均值

    该方法是借鉴 争渡.争渡博主的文章,在他的文章上略微改动,进行求解. Matlab新手对PIV数据的大量dat文件中的某一列进行平均值计算,该方法可以对整个文件夹内的dat文件进行求平均值,对于文件名 ...

  3. matlab引入外部数据,matlab引入外部数据

    (1)适用与 matlab 等非编译语言. (2)适用与 C 和 Fortran 等编译语言. B. 如何在外部程序中告诉 ANSYS 改变单元属性和载荷变化: 在从 ANSYS 中导入数据后.... ...

  4. matlab神经网络预测数据,matlab神经网络工具箱

    什么是matlab神经网络 Matlab语言是MathWorks公司推出的一套高性能计算机编程语言,集数学计算.图形显示.语言设计于一体,其强大的扩展功能为用户提供了广阔的应用空问. 它附带有30多个 ...

  5. matlab分析gnss数据,Matlab读取GNSS 观测值o文件代码示例

    一.准备工作 观测值数据读取是进行数据处理的前提,通常,观测值的数据格式有rtcm.ubx.rinex,各家厂商还有自定义的格式.数据读取是最简单的工作,掌握了数据组织格式即掌握了数据读取策略,简言之 ...

  6. matlab二进制操作,[转载]Matlab二进制类型数据相关操作

    Matlab逻辑运算 &: 逻辑与 A&B 返回值:当A.B中元素均为非零元素是,返回1,否则,为0,还可表示成and(a,b); | :逻辑或 A|B.还可以表示成or(A,B). ...

  7. matlab二进制定义,MATLAB二进制类型数据相关操作

    Matlab逻辑运算 &:逻辑与 A&B 返回值:当A.B中元素均为非零元素是,返回1,否则,为0,还可表示成and(a,b); |:逻辑或 A|B.还可以表示成or(A,B). ~ ...

  8. matlab figure 读取数据,matlab 读取figure 文件上的数据

    情况一:figure上只有一个axis: 1.首先调用h = findobj(gca,'Type','line')命令取得曲线的句柄: 2.然后调用xdata=get(h,'XData')和ydata ...

  9. matlab输出二进制,Matlab二进制类型数据相关操作

    Matlab逻辑运算 &: 逻辑与 A&B 返回值:当A.B中元素均为非零元素是,返回1,否则,为0,还可表示成and(a,b); | :逻辑或 A|B.还可以表示成or(A,B). ...

最新文章

  1. CocoStudio 1.3和1.4.1导入Flash文件注意事项(转载并有修改)
  2. 物体检测轻松上手:精度与速度实现兼得
  3. gradle入门_Gradle入门:简介
  4. Volatile的陷阱
  5. 6个实例详解如何把if-else代码重构成高质量代码
  6. 信息学奥赛一本通C++语言——1001:Hello,World!
  7. 剑指offer python版 构建乘积数组
  8. ubuntu 18.04使用aqt安装QT5.12
  9. cad电气工程量计算机,CAD电气管线快速算量方法
  10. 分享一个很好的dll查看器
  11. 我的世界贝爷生存用什么Java_我的世界贝爷生存MOD教程 [MITE] MC实在是太简单了教程详解 | 我的世界 | MC世界侠...
  12. 如何将根证书预置到chromium浏览器中
  13. Uplift Model
  14. STC12LE5612AD芯片使用心得(五)定时器
  15. 阿里云注册商标现身说法成功率打在公屏上
  16. [树形DP]贪吃的九头龙
  17. excel自动翻译-excel一键自动翻译免费
  18. #软工实践-个人项目-词频统计
  19. 物理PC机ping不通虚拟机解决方法(亲测可用)
  20. 三维点云学习(6)7-3D Object Detection-KITTI object detection evaluation(2)-kitt 数据集文件分卷解压方式

热门文章

  1. Android EventBus Subscriber class XXXActivity has no public methods called onEvent
  2. ObiFruid创建流体,ObiFruid学习笔记
  3. SyntaxError: Missing parentheses in call to ‘print‘. 正解
  4. ICDE‘22推荐系统论文之Research篇
  5. 微信小程序项目实例Java后台的小程序求职招聘|兼职管理系统
  6. 分布式三大利器之《消息队列》
  7. 前端寒假css(100-181)
  8. 张景明:方剂【方歌】——清热剂
  9. APS高级计划排程 基本概念
  10. 网页数据获取小技巧(小白)