2016-11-04 4 views
1
public static double PrazenWindowDensity(double [][] Xn, double x, double sigma2) 
    { 
     double gauss = 0; 

     foreach(double [] arr in Xn) 
     { 
      foreach (double item in arr) 
      { 
       double xx = GausianFunction(item, x, sigma2); 
       gauss += xx; 
      } 
     } 

     return gauss/Xn.Length; //this is surely incorrect. Isn't it? 
    } 

ここには何が書けますか?2Dジグザグ配列の要素数を調べる標準的な方法は何ですか?

return gauss/Xn.Length; 
+2

です。 http://stackoverflow.com/questions/262934/is-it-costly-to-do-array-length-or-list-count-in-a-loop – Eric

+0

@Eric、hmmm ...正しいです! – anonymous

答えて

1

最速、そして最も簡単な方法は、

public static double PrazenWindowDensity(double[][] Xn, double x, double sigma2) 
{ 
    double gauss=0; 
    int count=0; 
    for (int i=0; i<Xn.Length; i++) 
    { 
     gauss+=Xn[i].Sum((item) => GausianFunction(item, x, sigma2)); 
     count+=Xn[i].Length; 
    } 
    return gauss/count; 
} 
1

これは満足のいく答えのようですので、私は先に行くと1として、それを投稿します。あなたはすでにLINQが高速であるかどうかを知るか、単に内部のforeach内の `カウント++`追加しないで、ループをやっていると私は思う

return gauss/Xn.Sum(x => x.Length); 
関連する問題