2016-05-17 10 views
0

ネストされたループを書く良い方法はありますか?私のコードはうまくいきますが、完全に実行するには約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 

ありがとうございます。 Darl。

+3

時間を短縮する簡単な方法は、要素を1つずつ追加するのではなく、配列のサイズを初期化することです: 'Residual_Sqrd = 0(1、N * M)' – ChronoTrigger

答えて

0

1つ以上のループは必要ありません。インデックスを使用して、それはより速くする必要があります:

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

ところで、ijは、変数名のための非常に悪い選択です。

関連する問題