Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 确定从文件中提取的值是否在范围内_C#_Linq_Linq To Xml_Range_Standard Deviation - Fatal编程技术网

C# 确定从文件中提取的值是否在范围内

C# 确定从文件中提取的值是否在范围内,c#,linq,linq-to-xml,range,standard-deviation,C#,Linq,Linq To Xml,Range,Standard Deviation,因此,我必须编写一个代码来确定从文件中提取的值是否在特定范围内 double averageMaximumX = query.Average(t => double.Parse(t.XMax)); double varianceMaximumX = query.Sum(t => Math.Pow(double.Parse(t.XMax) - averageMaximumX, 2)); varianceMaximum

因此,我必须编写一个代码来确定从文件中提取的值是否在特定范围内

                double averageMaximumX = query.Average(t => double.Parse(t.XMax));
   double varianceMaximumX = query.Sum(t => Math.Pow(double.Parse(t.XMax) - averageMaximumX, 2));
                varianceMaximumX /= query.Count();
                double stdDevMaximumX = Math.Sqrt(varianceMaximumX);

                double averageMinimumX = query.Average(t => double.Parse(t.XMin));
   double varianceMinimumX = query.Sum(t => Math.Pow(double.Parse(t.XMin) - averageMinimumX, 2));
                varianceMinimumX /= query.Count();
                double stdDevMinimumX = Math.Sqrt(varianceMinimumX);

                double averageMaximumY = query.Average(t => double.Parse(t.YMax));
   double varianceMaximumY = query.Sum(t => Math.Pow(double.Parse(t.YMax) - averageMaximumY, 2));
                varianceMaximumY /= query.Count();
                double stdDevMaximumY = Math.Sqrt(varianceMaximumY);

                double averageMinimumY = query.Average(t => double.Parse(t.YMin));
   double varianceMinimumY = query.Sum(t => Math.Pow(double.Parse(t.YMin) - averageMinimumY, 2));
                varianceMinimumY /= query.Count();
                double stdDevMinimumY = Math.Sqrt(varianceMinimumY);

                double averageMaximumZ = query.Average(t => double.Parse(t.ZMax));
   double varianceMaximumZ = query.Sum(t => Math.Pow(double.Parse(t.ZMax) - averageMaximumZ, 2));
                varianceMaximumZ /= query.Count();
                double stdDevMaximumZ = Math.Sqrt(varianceMaximumZ);

                double averageMinimumZ = query.Average(t => double.Parse(t.ZMin));
   double varianceMinimumZ = query.Sum(t => Math.Pow(double.Parse(t.ZMin) - averageMinimumZ, 2));
                varianceMinimumZ /= query.Count();
                double stdDevMinimumZ = Math.Sqrt(varianceMinimumZ);


                var results = from item in query
                              select new
                              {
       XMaxResult = TryParseWithDefault(item.XMax, double.NaN) <= averageMaxX ? "pass" : "FAIL",
       XMinResult = TryParseWithDefault(item.XMin, double.NaN) >= averageMinX ? "pass" : "FAIL",
       YMaxResult = TryParseWithDefault(item.YMax, double.NaN) <= averageMaxY ? "pass" : "FAIL",
     YMinResult = TryParseWithDefault(item.YMin, double.NaN) >= averageMinY ? "pass" : "FAIL",
       ZMaxResult = TryParseWithDefault(item.ZMax, double.NaN) <= averageMaxZ ? "pass" : "FAIL",
        ZMinResult = TryParseWithDefault(item.ZMin, double.NaN) >= averageMinZ ? "pass" : "FAIL"

                              };
double-averageMaximumX=query.Average(t=>double.Parse(t.XMax));
double varianceMaximum=query.Sum(t=>Math.Pow(double.Parse(t.XMax)-averageMaximum,2));
varianceMaximumX/=query.Count();
double stdDevMaximumX=Math.Sqrt(variancemax);
double-averageMinimumX=query.Average(t=>double.Parse(t.XMin));
double varianceMinimumX=query.Sum(t=>Math.Pow(double.Parse(t.XMin)-averageMinimumX,2));
varianceMinimumX/=query.Count();
double stdDevMinimumX=Math.Sqrt(varianceminimmumx);
double-averageMaximumY=query.Average(t=>double.Parse(t.YMax));
double varianceMaximumY=query.Sum(t=>Math.Pow(double.Parse(t.YMax)-averageMaximumY,2));
varianceMaximumY/=query.Count();
double stdDevMaximumY=Math.Sqrt(varianceMaximumY);
double-averageMinimumY=query.Average(t=>double.Parse(t.YMin));
double varianceMinimumY=query.Sum(t=>Math.Pow(double.Parse(t.YMin)-averageMinimumY,2));
varianceMinimumY/=query.Count();
double stdDevMinimumY=Math.Sqrt(varianceminimmumy);
double-averageMaximumZ=query.Average(t=>double.Parse(t.ZMax));
double varianceMaximumZ=query.Sum(t=>Math.Pow(double.Parse(t.ZMax)-averageMaximumZ,2));
varianceMaximumZ/=query.Count();
double stdDevMaximumZ=Math.Sqrt(varianceMaximumZ);
double-averageMinimumZ=query.Average(t=>double.Parse(t.ZMin));
double varianceMinimumZ=query.Sum(t=>Math.Pow(double.Parse(t.ZMin)-averageMinimumZ,2));
varianceMinimumZ/=query.Count();
double stdDevMinimumZ=Math.Sqrt(varianceminimmumz);
var results=来自查询中的项
选择新的
{
XMaxResult=TryParseWithDefault(item.XMax,double.NaN)=averageMinX?“通过”:“失败”,
YMaxResult=TryParseWithDefault(item.YMax,double.NaN)=平均?“通过”:“失败”,
ZMaxResult=TryParseWithDefault(item.ZMax,double.NaN)=averageMinZ?“通过”:“失败”
};

将标准偏差加上并减去平均值

范例

XMaxResult = (TryParseWithDefault(item.XMax, double.NaN) <= averageMaxX + stdDevMaximumX 
             && TryParseWithDefault(item.XMax, double.NaN) >= averageMaxX - stdDevMaximumX)  
             ? "pass" : "FAIL"
XMaxResult=(TryParseWithDefault(item.XMax,double.NaN)=averageMaxX-stdDevMaximumX)
? “通过”:“失败”

让我在每种情况下尝试一下,看看效果如何。