我的代码运行速度很慢

时间:2016-05-17 09:50:17

标签: matlab loops

有没有更好的方法来编写嵌套循环?我的代码运行良好,但完全执行大约需要7分钟。

for i=1:Z
    n = 0;
    for j=1:N
        for k=1:M      
            if (Distance_Unique(i)==Distance(j,k))               
                n = n+1;
                Residual_Sqrd(n) = Residual_Squared(j,k);
                Summation_Residual_Squared(i) = sum(Residual_Sqrd);
            end
        end
    end
    Residual_Sqrd = zeros();
end

提前致谢。 卡尔。

1 个答案:

答案 0 :(得分:0)

您不需要多个循环。使用索引,它应该更快:

for i=1:Z
   Summation_Residual_Squared(i) = sum(Residual_Squared(Distance_Unique(i)==Distance));
end

顺便说一句,ij是变量名称的非常​​糟糕的选择。