Abh*_*tia 4 python memory matlab
我想memmap
在MATLAB中创建一个.在python我可以这样做:
ut = np.memmap('my_array.mmap', dtype=np.float64, mode='w+', shape=(140000,3504))
Run Code Online (Sandbox Code Playgroud)
然后我将它用作普通数组,操作系统确保我的记忆永远不会溢出.如何在MATLAB中做到这一点?
从文档来看,它似乎要我先在MATLAB中创建一些数组,然后将其写入文件并使用memmap
!
Matlab文档不够清楚:请提供一个创建随机数组(140000,15000)并将其与其他类似矩阵相乘的示例.
您必须先创建一个空文件,然后使用memmapfile:
size=[140000,3504];
filesize=0;
datatype='float64';
filename='my_array.dat';
fid=fopen(filename,'w+');
max_chunk_size=1000000;
%fills an empty file
while filesize<prod(size)
to_write=min(prod(size)-filesize,max_chunk_size);
filesize=filesize+fwrite(f, zeros(to_write,1), datatype);
end
fclose(fid);
m = memmapfile(filename,'Format','double', 'Writable',true);
Run Code Online (Sandbox Code Playgroud)