为什么hardisk和matlab上的mat文件大小不同?

为什么hardisk和matlab上的mat文件大小不同?,matlab,memory,mat-file,Matlab,Memory,Mat File,我无法理解以下情况 活动监视器上的初始Matlab内存(在mac上)=969.4MB 当我加载包含80x60x13x15238映像的.mat文件时,该映像在硬盘上显示大小为2.1 GB。活动监视器上的内存使用率达到7.80GB,压缩内存达到172.6MB 当我开始模拟时,内存使用率达到8.22GB,压缩内存达到6.13GB 我有三个问题? 1) 为什么2.1 GB数据的内存使用率如此之高? 2) 我如何减少它,或者哪种格式最好,占用更少的内存? 3) 如果有其他格式,那么加载和使用是否很快 问候

我无法理解以下情况

活动监视器上的初始Matlab内存(在mac上)=969.4MB

当我加载包含80x60x13x15238映像的.mat文件时,该映像在硬盘上显示大小为2.1 GB。活动监视器上的内存使用率达到7.80GB,压缩内存达到172.6MB

当我开始模拟时,内存使用率达到8.22GB,压缩内存达到6.13GB

我有三个问题? 1) 为什么2.1 GB数据的内存使用率如此之高? 2) 我如何减少它,或者哪种格式最好,占用更少的内存? 3) 如果有其他格式,那么加载和使用是否很快

问候

  • 您使用的是7.08 GiB的数据,Mat文件的大小为2.1 GiB,因为它是一个gzip压缩的HDF5文件
  • 您正在加载7.08 GiB的数据,这需要7.08 GiB的内存
  • 您使用的格式正确。你的数据太大了

  • 那么这是一个大矩阵?什么数据类型?
    whos
    打印什么?@Daniel Name=mymat,Size=4-D,Bytes=7606809600 Class=double,好的,我问题的第一部分很清楚。现在你能告诉我第二部分和第三部分的情况吗?你的原始数据是7.08 GiB,这不是Matlab造成的大小。80x60x13x15238x64位就是这么大。如果要加载那么多双精度值,需要7.08 GiB的内存。你真的需要一次将所有数据存储在内存中吗?我需要80x60x13作为一个输入,它是一个神经网络。读取所有15238个样本。所以我需要所有的数据,但是所有的数据都保存在一个文件中。我必须在几个时期内阅读15238个样本,直到误差最小化到零或尽可能多。