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

时间:2020-03-21 16:15:28

标签: matlab file variables printf size

我在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。如何解决此问题?怎么解释?

谢谢

路易斯·贡萨尔维斯

1 个答案:

答案 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进行了四舍五入)。

相关问题