我在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将数据保存到文件时实际上正在压缩数据,请参见docs
从版本7开始,MATLAB在写入时压缩数据MAT文件可节省存储空间。数据压缩和解压缩减慢所有保存操作和某些加载操作的速度。绝大多数情况下,文件大小的减少值得花费额外的时间。
如果您不喜欢这样,请明确告诉“保存”您要使用较旧的文件版本(2012年的最新标准)
save('myfile.mat','-v6')