使用repmat
时,出现此错误:
Error using repmat
Requested 2192800x2400 (39.2GB) array exceeds maximum array size preference. Creation of arrays greater than this limit may take a
long time and cause MATLAB to become unresponsive. See array size limit or preference panel for more information.
我想要一个接受两个输入的函数:input_array
和max_mem
,其中第一个是我要复制的数组,max_mem
是GB中的一块内存。该函数应返回N_max
,这是一个整数,可以最大化repmat(input_array, N_max, 1)
的行数,同时将其限制在max_mem
指定的内存限制范围内。
答案 0 :(得分:1)
如果我理解正确
function N_max = foo (input_array, max_mem)
arrayInfo = whos('input_array');
arraySize = arrayInfo.bytes;
% max_mem in bytes, conversion if necessary
N_max = floor(max_mem / arraySize);