请教有关for循环改变为向量化运算
采用向量化运算可以大大提高运算速度,请问大家对于下面这个function 如何改变成向量化运算呢请大家赐教
function a=half(k)
a=zeros(1,k);
a(1)=64;
for i=2:k
a(i)=2*a(i-1);
end
不是任何问题都可以用向量化运算解决的,否则估计matlab就会取消循环运算了 我觉得可以用filter函数实现 等我实现了上传请大家指正 回复 1 # huaijuliu 的帖子
function a=half(k)
aa=0:k-1; a=64*(2.^aa); 本帖最后由 huaijuliu 于 2011-3-12 01:08 编辑
filter(,1,32*)
ans =
0 64 128 256 512
把第一个数去掉就可以了
回复 5 # huaijuliu 的帖子
看到LZ使用filter, 著实钦佩又吓了一下, 想著怎会联想到数位滤波!?
好奇问下, 原本编程使用目的为何?:@)
filter(,1,32*);也就是b=; a=1; x=32*;相当y(n)=2*x(n-1);
总感觉LZ逛了一大圈, 或许LZ可解惑下!:handshake 回复 4 # ChaChing 的帖子
看到您的回复 突然想到了自己确实绕了一圈 其实就是想避免for循环
您这个就避免了for循环 感谢 回复 7 # huaijuliu 的帖子
谢谢说明, 其实我本来是怕是否没看清或忽略了什麼...
说真的, LZ的那个方法, 个人还满欣赏的, 很有创意
页:
[1]