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');
文件大小现在更大,因为数组被填充为数据。