【问题标题】:H5 vs Mat-File MatlabH5 vs Mat-File Matlab
【发布时间】:2015-02-22 15:02:36
【问题描述】:

我想知道为什么在内容相同的情况下,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 保存过程中忽略的标志?

【问题讨论】:

    标签: matlab save mat-file


    【解决方案1】:

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

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

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

    【讨论】:

    • 不确定我是否没有正确遵循代码,但确切的代码会产生一个 58 mb 的数据,这与默认的 mat 文件(我最初问题的代码 2 输出)相同,我尝试玩弄块大小并没有产生任何更好的结果。
    • @user2375049:MAT 文件也被压缩了,所以达到差不多相同的大小是我指责的“好”。这样的随机数据很难压缩,你不能指望任何奇迹。
    猜你喜欢
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 2022-10-16
    • 2022-10-13
    • 2021-08-17
    相关资源
    最近更新 更多