Matlab文件大小不同,内存中的变量大小不同
我在Matlab中有下面的代码,fg是一个1000x1000x1000 uint8的数组。renato.raw的最终尺寸为1.190857E6 x 1024,而不是1E9(1000x1000x1000)。有人知道原因吗Matlab文件大小不同,内存中的变量大小不同,matlab,file,variables,printf,size,Matlab,File,Variables,Printf,Size,我在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
fid = fopen('renato.raw', 'w');
fprintf(fid, '%u', fg);
fclose(fid);
在下列情况下:
fid = fopen('renato.raw', 'w');
fwrite(fid,fg,'uint8');
fclose(fid);
在本例中,文件为0.976563E6 x 1024。如何解决这个问题?如何解释
谢谢
Luis Gonçalvesfprintf(fid,'%u',fg)
编写一个包含fg
内容的文本文件。例如,如果fg=[0 10 20 30]
文件包含以ASCII格式保存为7字节的文本0102030
。这就是大小增加的原因,这取决于fg
中数字的小数位数
fwrite(fid,fg,'uint8')
将fg
的每个值直接作为一个字节写入。以字节为单位的文件大小应与numel(fg)
相同。请注意,0.976563E6*1024
非常接近1000*1000*1000
(可能该数字0.976563E6
已显示为四舍五入)。关于最后一段,您是对的。我错过了。