[转载]matlab运行程序时显示内存不足的解决方法(总结他人的建议)
(2018-11-06 16:24:08)
标签:
转载 |
分类: matlab |
我电脑8G内存,matlab运行竟然提示内存不足,怪哉怪哉。
1、如果你所使用的电脑配置了超过3G的内存,可以在启动文件BOOT.INI脚本中加入/3GB开关
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)WINNT="????"/3GB
注意后面的/3GB就是后加上的。重新启动系统再次运行matlab。2、在我的电脑属性中找到环境变量设置,在系统变量中增加“MATLAB_MEM_MGR”变量,值为“fast”
3、电脑换64位操作系统,装64位matlab
,可以查看 内存的使用情况:
物理内存:使用,可用,总数
交换页面:使用,可用,总数
虚拟内存:使用,可用,总数
最大连续可用内存块:按从大到小排序,以及总数
命令
whos 和 whos global 可以分别查看所有局部和全局变量占用的内存大小
4、增加内存
5、优化matlab程序
6、在matlab命令窗口执行
feature('memstats')
7、确保内存的连续性
Matlab 中数组必须占用连续分配的内存段,当无法为新建的数组分配连续的内存段的时候,Out
of Memory 就会出现。由于反复分配和释放数组会使可用的连续内存段减少,实际操作中可如下处理:
1)将不用的数据存储在工作目录,让下一步计算需要的单独存储
2)运行程序之前最好依次执行“clear”和“pack”命令,用clear清空内存;用 pack 命令将内存中的数组写入硬盘,然后重建这些数组,以减少内存碎片
1)将不用的数据存储在工作目录,让下一步计算需要的单独存储
2)运行程序之前最好依次执行“clear”和“pack”命令,用clear清空内存;用 pack 命令将内存中的数组写入硬盘,然后重建这些数组,以减少内存碎片
3)载入需要计算的变量
8、减少使用双浮点数
8、减少使用双浮点数
Matlab 默认的数字类型是双精度浮点数double,每个双浮点数占用
8 个字节。对于一些整数操作来说,使用双浮点数显得很浪费,在很多精度要求不高的情况下,使用4个字节的单浮点数
single,可以减少一半的内存。关于单、双浮点数的精度对照如下,以便根据需要选择使用:
single: 精度 (1.1921e-007) 最大数 (3.4028e+038)
double: 精度 (2.2204e-016) 最大数 (1.7977e+308)
single: 精度 (1.1921e-007) 最大数 (3.4028e+038)
double: 精度 (2.2204e-016) 最大数 (1.7977e+308)
前一篇:[转载]2016年10月18日