3 数组预分配
预先指定数组大小能加快运算;
如果最后数组大小可能是变动的可以采用以下方法:
1.先分配一个较大的大小
2.利用count确定最后的大小
最后一个是accumarray:Construct array with accumulation
看完matlab官方注解也没太懂,找一个链接一起学习一下
http://ncforest.blog.163.com/blog/static/295626642007111911364821/
5.2 向量化逻辑
e.g.1 向量均一化
a = a ./ (ones(50,1)*sqrt(sum(a .* a)));
比较下其他的方法:
tic; aa1 = a ./ (ones(50,1)*sqrt(sum(a .* a))); toc
tic; aa2 = a ./ (ones(50,1)*sqrt((dot(a,a)))); toc
好像还是方法1要快一点点;
但如果循环用norm的话就不止慢一点点了。。。
e.g.2 去掉元素
比如你想去除矩阵里面太小(NAN)或者太大(INF)的元素可以用以下命令:
x(isnan(x) | isinf(x) ) = []; %去除坏元素
%保留好元素就是取非运算哈,一个道理
e.g.3 分段函数
sinc(x) = (sin(x) + x == 0) ./ (x + x == 0)
e.g.4 画网格图
生成了 5 * 3 的点阵后可以用于作图
e.g.5 多项式插值
这部分可以略过。。算多项式插值还是用polyfit吧。。