matlab中out语句,Matlab中“Out of memory”问题总结(超全版)

Matlab中“Out of memory”问题总是相当令人头疼,比如大矩阵做运算时一不小心就会出现。其原因在于:内存在使用的过程中会不断的分配和释放,导致被分割成很多不连续的区域(操作系统知识)。而Matlab中矩阵的存储是以块(block)的形式存储的,也就是说当Matlab在为即将存储的矩阵划分block时,如果没有相应大小的连续内存用于分配,就会报告“Out of Memory”----即便实际内存没有被完全使用。

============================================================================

遇到这个问题时,首先要学会使用help命令查看内存相关的命令及其用法(matlab最最最权威的指导材料,你值得拥有)。例如使用”memory“命令查看内存使用情况,举个例子:

>>memory

Maximum possible array: 1102 MB (1.155e+009 bytes) * #当前系统数组能占的最大内存

Memory available for all arrays: 1427 MB (1.496e+009 bytes) ** #当前系统变量可被分配的空间

Memory used by MATLAB: 363 MB (3.811e+008 bytes) #matlab已经使用的内存数量

Physical Memory (RAM): 3063 MB (3.212e+009 bytes) #系统物理内存数量

* Limited by contiguous virtual address space available. #打星号表示受限于连续可用的虚拟地址空间(内存空间)

** Limited by virtual address space available. #打双星号表示受限于可用的虚拟地址空间(内存空间)

(以上是以32位windows系统为例)

此外,由于反复分配和释放内存会使可用的连续内存段减少,因此当 Matlab 刚刚启动时连续内存最多,此时往往可以新建非常大的数组,这一点可以用命令“feature('memstats')”(matlab version >= 7.0)看出。如果显示的最大连续内存段很小,但实际可用内存(非连续的)仍旧很多,则表明内存中碎片太多了。再举个例子:

>> feature('memstats')

Physical Mem

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值