0

我想知道为什么在内容相同的情况下,h5 文件在硬盘中占用的空间比普通 mat 文件大。我一直认为h5是一种压缩的。详情如下

在 64 位 linux-ubuntu 中使用 Matlab 2014b

代码1:

clear,clc
h5create('myfile.h5','/DS1',[900 9000]);
mydata = rand(900,9000);
h5write('myfile.h5', '/DS1', mydata);
data = h5read('myfile.h5','/DS1');

代码 2

clear,clc
a=rand(900,9000);
save a a;

mat 文件的大小比 h5 文件 (61 mb) 小 2 mb,是否有任何标志我忽略了 h5 保存过程?

4

1 回答 1

1

默认情况下 HDF5 是未压缩的,但它支持不同的压缩过滤器。gzip 是在 matlab 中实现的,你可以简单地通过设置一个高于 0 的级别来启用它。

h5create('myfile_gzip.h5','/DS1',[900 9000],'Deflate',9,'ChunkSize',[100,100]);
h5write('myfile_gzip.h5', '/DS1', a);

因为ChuckSize我做了一个愚蠢的猜测,幸运的是结果很好,如果你遇到不好的结果,也许你可以尝试其他值。

于 2014-12-24T14:33:29.890 回答