我在Matlab中有以下代码,fg是1000x1000x1000 uint8的数组。 renato.raw的最终大小为1.190857E6 x 1024,而不是1E9(1000x1000x1000)。有人知道原因吗?
UNSAFE_componentWillMount() {
this.setDefault(false);
}
setDefault = fill => {
const temp = {};
group.forEach(x => (temp[x] = fill ? groupItems : []));
this.setState({ permission: temp });
};
在以下情况下:
fid = fopen('renato.raw', 'w');
fprintf(fid, '%u', fg);
fclose(fid);
在这种情况下,文件为0.976563E6 x1024。如何解决此问题?怎么解释?
谢谢
路易斯·贡萨尔维斯
答案 0 :(得分:1)
fprintf(fid, '%u', fg)
写入内容为fg
的 text 文件。例如,如果fg = [0 10 20 30]
文件包含 text 0102030
,另存为7个字节的ASCII码。这就是为什么大小会增加的原因,具体取决于fg
中的数字有多少个小数位数。
fwrite(fid, fg, 'uint8')
将fg
的每个值直接写为一个字节。文件大小(以字节为单位)应与numel(fg)
相同。请注意,0.976563E6 * 1024
非常接近1000*1000*1000
(也许数字0.976563E6
进行了四舍五入)。