MATLAB中的矩阵大小限制

bit*_*ion 6 matlab

可能重复:
MATLAB:最大预分配大小?

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

Man*_*qui 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.
Run Code Online (Sandbox Code Playgroud)

要计算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
Run Code Online (Sandbox Code Playgroud)

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

Mathworks公司还提供了关于如何避免详细的文档Out of Memory错误在这里.