内环可以矢量化吗?如果是这样,怎么样?
for M=1:n_iter
for k=1:length(v)
v(k) = min(v(k), (v( max(k − M,1) ) + v( min(k + M,length(v)) ))/2 );
end
end
问题是如何使用迭代变量k
构造向量(v( min(k − M,1) ) + v( max(k + M,length(v)) ))/2
我想在用C ++实现之前尝试SNIP算法。
答案 0 :(得分:0)
有时,矢量化循环只需要用向量替换循环:
for M=1:n_iter
k=1:length(v)
v(k) = min(v(k), (v( max(k − M,1) ) + v( min(k + M,length(v)) ))/2 );
end