Matlab写起程序是方便,但动不动就"Out of memory”,看了下自带的文档,摘了几条,作为备忘。
* Preallocating
要使用的变量,要先预分配空间,动态调整很费时。
* Structure和Cell用起来要注意
存储空间不仅取决于数据量,还取决于数据组织形式,反正个人建议是少用,能用矩阵表示就用矩阵,除非工程很大。
* Nested function
如果在调用函数时改变了变量值,那MATLAB会产生一个临时拷贝,使存储空间加倍。这种情况可以使用内嵌函数。
* Numeric type
简单得说,能用小位数类型表示的不用高位数的表示,前提是不上溢。
e.g.
>> a = magic(4);
>> b = single(a);
>> x = int8(127);
* Sparse Matrices
稀疏矩阵就稀疏着存。
e.g.
A = sparse(A);
* 不用的元素清空掉,脚本一开始写上clear;clc;
e.g.
clear A
* 把系统页面文件开大
页面文件设成自动。另外可以修改boot.ini啥的。。。在XP下可以多出1G内存,没试过,怕试了起不起来了。。。
主要参考
和matlab里help memory出来的那个东西
阅读(2888) | 评论(0) | 转发(0) |