MATLAB表达式的矢量化

时间:2014-08-31 09:31:30

标签: matlab vectorization

内环可以矢量化吗?如果是这样,怎么样?

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算法。

1 个答案:

答案 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