主要内容

使用阵列使用Matfile.功能

在将大量大值写入Mat文件时,文件的大小以非折叠方式增加。这种增加方法是预期的。为了最小化文件必须生长并确保最佳性能的次数,请在将其填充数据之前为数组分配初始值。

例如,假设你有一个可写的Matfile.目的。

filename =.'matfileofdoubles.mat';matobj = matfile(filename);matobj.properties.wrable = true;

定义要写入的值的参数。在这种情况下,写一百万个值,一次五万。值应具有123.4的平均值,标准偏差为56.7。

size = 1000000;块= 50000;平均值= 123.4;STD = 56.7;

在填充数据之前,将初始值分配给数组中的最后一个元素。

matobj.data(1,尺寸)= 0;

查看文件的大小。

  • 在Windows上®系统,使用谜语

    系统('dir matfileofdoubles.mat');

  • 在Unix上®系统,使用ls -ls.

    系统('ls -ls matfileofdoubles.mat');

在这种情况下,matfileofdoublesmat.小于5000字节。将初始值分配给数组的最后一个元素不会创建一个大文件。但是,它确实为您的系统准备了潜在的大尺寸增加matfileofdoublesmat.

将数据写入数组,一次一个块。

nout = 0;尽管(nout '写%d \ n',nout,size);Chunksize = min(块,大小 -  nout);数据=平均值+ std * randn(1,块状);matobj.data(1,(nout + 1):( nout + chunksize))=数据;nout = nout + chunksize;结尾

查看文件的大小。

系统('dir matfileofdoubles.mat');

文件大小现在更大,因为数组被填充为数据。

也可以看看

相关话题