From 49eb2a09634e439090d4a2b13ec7d6f911d3deaf Mon Sep 17 00:00:00 2001 From: cloudflight <cloudflight@126.com> Date: 星期六, 27 七月 2024 11:44:21 +0800 Subject: [PATCH] fix:修复沿程损失计算异常的问题 --- Hydraulic/Hydro.CommonBase/Helper/CurveFitHelper.cs | 19 ++++++++++--------- 1 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Hydraulic/Hydro.CommonBase/Helper/CurveFitHelper.cs b/Hydraulic/Hydro.CommonBase/Helper/CurveFitHelper.cs index 5a02a15..b0a09d2 100644 --- a/Hydraulic/Hydro.CommonBase/Helper/CurveFitHelper.cs +++ b/Hydraulic/Hydro.CommonBase/Helper/CurveFitHelper.cs @@ -270,14 +270,14 @@ /// <param name="numIntervals"></param> /// <param name="filterNum">浠ユ渶灏忓�间綔涓鸿繃婊ょ殑绯绘暟</param> /// <returns></returns> - public static List<DataPoint> GetFrequencyDistribution(List<double> data, out List<double>[] datapoints, int numIntervals = 10,double filterNum=5 ) + public static List<DataPoint> GetFrequencyDistribution(List<Result> data, out List<DataPoint>[] datapoints, int numIntervals = 10,double filterNum=5 ) { List<DataPoint> resultPoints = new List<DataPoint>(); - datapoints= new List<double>[numIntervals]; + datapoints= new List<DataPoint>[numIntervals]; for(int i=0;i<numIntervals;i++) { - datapoints[i]= new List<double>(); + datapoints[i]= new List<DataPoint>(); } // 璁剧疆缃俊姘村钩 @@ -291,8 +291,8 @@ // 璁$畻鏁版嵁鐨勬渶灏忓�煎拰鏈�澶у�� - double minValue = data.Min(); - double maxValue = data.Max(); + double minValue = data.Min(x=>x.ObjFunctionValue); + double maxValue = data.Max(x => x.ObjFunctionValue); // 璁$畻鍖洪棿瀹藉害 double intervalWidth = (maxValue - minValue) / numIntervals; @@ -301,23 +301,24 @@ int[] freqDist = new int[numIntervals]; // 璁$畻鍚勪釜鍖洪棿鐨勯鐜� - foreach (double x in data) + foreach (var xd in data) { + var x = xd.ObjFunctionValue; int index = (int)((x - minValue) / intervalWidth); if (index < 0) // 鏁版嵁灏忎簬鏈�灏忓�� { freqDist[0]++; - datapoints[0].Add(x); + datapoints[0].Add(new DataPoint() {XValue= x,Tag=xd }); } else if (index >= numIntervals) // 鏁版嵁澶т簬鏈�澶у�� { freqDist[numIntervals - 1]++; - datapoints[numIntervals - 1].Add(x); + datapoints[numIntervals - 1].Add(new DataPoint() { XValue = x, Tag = xd }); } else // 鏁版嵁鍦ㄥ尯闂村唴 { freqDist[index]++; - datapoints[index].Add(x); + datapoints[index].Add(new DataPoint() { XValue = x, Tag = xd }); } } double[] freqDistPersent =new double[numIntervals]; -- Gitblit v1.9.3