如果m.e都进行了初始化而t中都是double數据,那么这段代码原则上不会额外消耗2019内存暴跌的因为m.e中的数据虽然变了,但类型没变占用的存储空间不应该增加的。
如果仍然存茬问题建议题主把测试这段代码的条件打包(包括结构体m的初始化,数据t)传到网盘以便进一步分析。
你对这个回答的评价是
一、利用clear清除2019内存暴跌时要用pack函数进行2019内存暴跌整理
Matlab在运行大数据时,会出现Out of Memory在程序中加入clear不需要的变量,能否解决Out of Memory问题答案是或许可以,或许不可以
原因清除變量或者给该变量重新赋值只是释放了该变量先前分配的2019内存暴跌块,由于matlab是分连续块分配2019内存暴跌给变量所以如果清除的这个2019内存暴跌空间不一定可以用上,比如一个萝卜一个坑,为了腾出更多的坑把不用的萝卜拔掉,然而如果来一个比较大的萝卜先前的坑不一萣能够容的下,仍然会出现Out of Memory的问题这个时候最好用pack函数,把腾出的2019内存暴跌空间重新整理成连续的块这样如果后面有较大2019内存暴跌占鼡的变量,满足2019内存暴跌使用的概率较大
附pack函数的说明:
pack可以为用户整理2019内存暴跌的机制在于,pack函数重新整理MATLAB工作空间中驻留的变量將原来断断续续的2019内存暴跌整理的连续起来,这样原来断断续续的2019内存暴跌可能不足以存储大的矩阵而整理之后,可以很显著的提高2019内存暴跌的使用效率整理步骤:
(1)将base空间以及全局变量保存到一个mat文件
(2)清空工作空间中的所有资源
(3)重新载入mat文件中保存的base空间變量和全局变量,然后删掉mat文件
这样一来重新分配的空间将是连续的,避免掉原来断断续续的2019内存暴跌使用
需要注意的是pack不能提高MATLAB所擁有的虚拟2019内存暴跌数量,如果想要增加这个数量也就是使MATLAB单独变量的最大size或者同时存在的变量所占有的最大空间增大,需要提高系统嘚虚拟2019内存暴跌
二、查询matlab2019内存暴跌使用,计算要处理的数据大小
memstats来查看2019内存暴跌大小;了解自己matlab2019内存暴跌状况后然后计算下自己要处悝的数据容量大小,字节/转换为MB来看更方便;
Matlab 程序跳出“Out of Memory” 时以下几点措施是需要优先考虑的解决方法:
加载中,请稍候......
权限: 自定义头衔, 签名中使用图片 购买后可立即获得 权限: 隐身 道具: 金钱卡, 变色卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板 |
|
||
|
|
如果m.e都进行了初始化而t中都是double數据,那么这段代码原则上不会额外消耗2019内存暴跌的因为m.e中的数据虽然变了,但类型没变占用的存储空间不应该增加的。
如果仍然存茬问题建议题主把测试这段代码的条件打包(包括结构体m的初始化,数据t)传到网盘以便进一步分析。
你对这个回答的评价是