可能的重复:
MATLAB:最大预分配大小? https://stackoverflow.com/questions/2332430/matlab-maximum-pre-allocated-size
在 MATLAB 中创建矩阵有大小限制吗?如果是这样,我在哪里可以找到这些信息?
Matlab 中的内存仅受操作系统提供的内存量(包括虚拟内存)的限制。矩阵作为连续空间存储在内存中,因此如果您有一个占用 8GB 内存的矩阵,则需要在内存中提供一大块 8GB 的可用空间。
您可以使用memory http://www.mathworks.com/help/techdoc/ref/memory.html命令提供有关可用内存的详细统计信息,包括单个矩阵可用的连续内存量。例如:
> 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
value 对应,您只需除以每个数组元素所需的字节数即可。来自memory http://www.mathworks.com/help/techdoc/ref/memory.html文档:
最大可能数组
最大可能数组是最大连续空闲内存块的大小。因此,它是 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
errors here http://www.mathworks.com/support/tech-notes/1100/1107.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)