MATLAB中的矩阵大小限制

时间:2011-09-07 01:47:21

标签: matlab

  

可能重复:
  MATLAB: maximum pre-allocated size?

在MATLAB中创建矩阵是否有尺寸限制?如果是这样,我在哪里可以找到这些信息?

2 个答案:

答案 0 :(得分:5)

Matlab中的内存仅限于操作系统可用的内存量(包括虚拟内存)。矩阵作为连续空间存储在内存中,因此如果你有一个占用8GB内存的矩阵,你需要一块8GB的大块内存。

您可以使用memory命令提供有关可用内存的详细统计信息,包括单个矩阵可用的连续内存量。例如:

> memory

Maximum possible array:           677 MB (7.101e+008 bytes) *
Memory available for all arrays: 1601 MB (1.679e+009 bytes) **
Memory used by MATLAB:            446 MB (4.681e+008 bytes)
Physical Memory (RAM):           3327 MB (3.489e+009 bytes)

  *  Limited by contiguous virtual address space available.
  ** Limited by virtual address space available.

要计算Maximum possible array值对应的数组大小,您只需除以每个数组元素所需的字节数。来自memory文档:

  

最大可能数组

     

Maximum Possible Array是最大的连续空闲内存块的大小。因此,它是MATLAB此时可以创建的最大单个数组的上限。

     

MATLAB从以下两个值中的较小值派生此数字:

* The largest contiguous memory block found in the MATLAB virtual address space
* The total available system memory
     

要查看此数字表示的数组元素数,请除以数组类中的字节数。例如,对于双数组,除以8. MATLAB可以创建的实际元素数总是少于这个数。

Mathworks还提供了有关如何避免Out of Memory错误here的详细文档。

答案 1 :(得分:1)

是的,您受到计算机上可用RAM量的限制。您可以使用命令

在MATLAB中进行检查
feature( 'memstats' )