【问题标题】:Vecorizing an inner for loop对内部 for 循环进行矢量化
【发布时间】:2012-02-04 15:21:48
【问题描述】:

我想在 MATLAB 中对以下嵌套循环构造的内循环进行矢量化:

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

其中bFU 是长度为MM 的向量。只想优化这段代码。

【问题讨论】:

    标签: matlab for-loop vectorization


    【解决方案1】:

    为了向量化内部循环,您需要先向量化func()(仅用于第一个参数)。即,func 必须能够处理这样的事情:

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

    如果你能做到这一点,那么你可以在元素乘法上使用sum

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-26
      • 2015-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多