您的位置:首页 > 编程语言 > MATLAB

Writing Fast Matlab code 3-5

2015-10-07 20:28 357 查看
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吧。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: