Matlab文件大小与内存中变量大小的不同

问题描述 投票:0回答:1

我在Matlab中有以下代码,fg是1000x1000x1000 uint8的数组。 renato.raw的最终大小为1.190857E6 x 1024,而不是1E9(1000x1000x1000)。有人知道原因吗?

    fid = fopen('renato.raw', 'w');
    fprintf(fid, '%u', fg);
    fclose(fid);

[如果有:

    fid = fopen('renato.raw', 'w');
    fwrite(fid,fg,'uint8');
    fclose(fid);

在这种情况下,文件为0.976563E6 x1024。如何解决此问题?如何解释?

谢谢,

路易斯·贡萨尔维斯

matlab file variables printf size
1个回答
0
投票

MATLAB将数据保存到文件时实际上正在压缩数据,请参见docs

从版本7开始,MATLAB在写入时压缩数据MAT文件可节省存储空间。数据压缩和解压缩减慢所有保存操作和某些加载操作的速度。绝大多数情况下,文件大小的减少值得花费额外的时间。

如果您不喜欢这样,请明确告诉“保存”您要使用较旧的文件版本(2012年的最新标准)

save('myfile.mat','-v6')
© www.soinside.com 2019 - 2024. All rights reserved.