matlab内存溢出的解决方案

(1) 增加虚拟内存:cmd -> taskmgr 打开任务管理器,查看物理内存和虚拟内存,可观察matlab在运行过程中是否超过物理内存和虚拟内存。若超过,增加虚拟内存的方法是不可行的。物理内存不足的时候可以通过将电脑的虚拟内存设置得大一点,可一定程度上缓解内存不足的压力,但缓解是非常有限,核心还是增加物理内存。

查看虚拟内存方法:

(1a)右击“我的电脑”–属性–高级系统设置—-系统属性—–高级—-在性能框内点“设置”
(1b)性能选项对话框,点第二个标签“高级”
(1c)页面文件大小后面的数字就是虚拟内存。
(1d)若分页文件大小0,表示没有设置虚拟内存

增加虚拟内存方法
重复(1a)->(1d),
(1e)点击性能选项-高级-更改,取消选定的虚拟内存页面顶部的复选框,然后点击系统所在的驱动器,接着点击自定义大小,可在空白框中输入你索要设置的虚拟内存的大小即可。
这里写图片描述

(2)使用PACK:PACK可以将matlab中的变量导出到磁盘中,以增加可用内存。

如何使用PACK:
当内存被分为很多碎片以后,其实本身可能有很大的空间,只是没有作构的连续空间即大的Block而已。如果此时Out of Memory,此时使用pack命令可以很好的解决此问题。
help文件 用法:
pack
pack filename
pack(‘filename’)

pack可以为用户整理内存的机制在于,pack函数重新整理MATLAB工作空间中驻留的变量,将原来断断续续的内存整理的连续起来,这样原来断断续续的内存可能不足以存储大的矩阵,而整理之后,可以很显著的提高内存的使用效率,最后重新分配的空间将是连续的,避免掉原来断断续续的内存使用。整理步骤:
(1)将base空间以及全局变量保存到一个mat文件
(2)清空工作空间中的所有资源
(3)重新载入mat文件中保存的base空间变量和全局变量,然后删掉mat文件

备注: pack不能提高MATLAB所拥有的虚拟内存数量,如果想要增加这个数量,也就是使MATLAB单独变量的最大size或者同时存在的变量所占有的最大空间增大,需要提高系统的虚拟内存。

Change the current folder to one that is writable, run pack, and return to the previous folder.

cwd = pwd;
cd(tempdir);
pack
cd(cwd)
feature('memstats') % 查看matlab内存
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值