2016-11-04 27 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

正如你已经在做一个循环,不知道LINQ是更快或只加内的foreach内'计数++'。 http://stackoverflow.com/questions/262934/is-it-costly-to-do-array-length-or-list-count-in-a-loop – Eric

+0

@Eric,嗯......正确的你! – 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

这似乎是一个满意的答复,所以我会继续和张贴为一体。

return gauss/Xn.Sum(x => x.Length);