我正在尝试在 matlab_2011a 上运行一个脚本,它计算 50 年气候学的相同平均值。当我开始运行脚本多年时,它运行良好,直到第 20 次迭代,然后出现以下消息:
Out of memory. Type HELP MEMORY for your options.
Run Code Online (Sandbox Code Playgroud)
然后我用来clear v1 v2 v3 ...清除函数内部的所有变量,也是clear train因为我在另一个论坛上看到它而使用的,这些修改与否,我再次运行脚本(从第21次迭代开始),结果是相同的消息,但奇怪的是有时它运行一年然后停止。
关于解决这个问题的任何想法?,我必须清理什么才能正确运行?(在这个 matlab 版本中,没有可能对我有帮助的命令内存)。
编辑
解决方案:有一个太大的变量,以不同的方式保存结果防止了内存不足错误。
我不是狂热的 MATLAB 用户,但我建议您尝试一下:
File > Preferences > General > Java Heap Memory.
Run Code Online (Sandbox Code Playgroud)
然后您可以将内存量增加到超过默认值 196 MB。希望这可以帮助。
内存管理是 Matlab 长期存在的问题。最可能的原因out of memory error是内存泄漏。内存泄漏是可以被发现的,但是找到它们在技术上具有挑战性并且耗时。
要完全释放内存,需要重新启动Matlab。如果有办法在处理部分数据后保存结果,保存数据并重新启动Matlab。重新加载数据并处理另一块数据。重复此操作,直到处理完所有数据。要处理的数据量应少于 20 年。
这远非优雅,并且取决于能够保存和重新加载数据。另外,我认为数据本身的大小不是问题。
| 归档时间: |
|
| 查看次数: |
9177 次 |
| 最近记录: |