2014-08-31 80 views
0

内部循环是否可以被矢量化?如果是这样,怎么样?表达式的MATLAB矢量化

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

有时,向量化环路简单地需要与矢量来替换循环:

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