H5 vs Mat-File Matlab

时间:2014-12-24 13:41:01

标签: matlab save mat-file

我想知道为什么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保存过程的标志?

1 个答案:

答案 0 :(得分:1)

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

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

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