2012-02-04 99 views
0

我想向量化內部循環MATLAB中的如下因素嵌套循環構造的:Vecorizing內部for循環

for j = 1:MM 
    S4 = 0; 
    for i = 1:MM    
     S4 = S4 + b(i,1)*func(i,x(j),0,1); 
    end 

    F(j) = u(j) - f(x(j))-S4; 
end 

b其中,F,和U是長度MM的載體。只想優化這段代碼。

回答

3

爲了矢量化內部循環,您需要首先矢量化func()(僅針對第一個參數)。即,func必須能夠處理這樣的事情:

func([1:MM], x(j), 0, 1) 

如果你能做到這一點,那麼你可以只使用sum在逐元素乘法:

S4 = sum(b(:,1) .* func([1:MM], x(j), 0, 1));