python - MATLAB 中的 Memmap 用于大数组

标签 python matlab memory

我想创建一个 memmap在 MATLAB 中。 在 python 中,我可以通过以下方式做到这一点:

ut = np.memmap('my_array.mmap', dtype=np.float64, mode='w+', shape=(140000,3504))

然后我将它用作普通数组,操作系统确保我的内存永远不会溢出。如何在 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);

关于python - MATLAB 中的 Memmap 用于大数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33203467/

相关文章:

python - Cron 语法,MAC OS X

python - 使用 python 跨不同数据库的 MySQL MERGE 表

python - 用一些特殊字符替换一串字符?

C++ : Why reference to stack allocated object treated same as reference to heap allocated object?

python - 使用USB摄像头在Ubuntu上进行pyaudio录音

MATLAB symengine 在逻辑语句上失败

matlab - matlab oop中的私有(private)构造函数

matlab - 非等距数据的一维高斯滤波器

ios - 如何在iOS中将NSObject分配到其自己的虚拟内存页面上?

c++ - C中的MPI和多维数组分配