我想知道为什么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保存过程的标志?
答案 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
我做了一个愚蠢的猜测,幸运的是,结果很好,如果你遇到不好的结果,也许你可以尝试其他值。