【问题标题】:Calculate maximum number of repetitions of a matrix for a given memory limit计算给定内存限制的矩阵的最大重复次数
【发布时间】:2016-07-18 23:55:53
【问题描述】:

在使用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 指定的内存限制范围内。

【问题讨论】:

    标签: arrays matlab memory


    【解决方案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); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多