2012-02-04 95 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));