在MATLAB中创建矩阵是否有尺寸限制?如果是这样,我在哪里可以找到这些信息?
答案 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' )