|
@@ -136,6 +136,11 @@ func ComputeCorrelation(sList []Coordinate) (r float64) {
|
|
|
varYDeci = varYDeci.Add(diffYYbarDeci.Mul(diffYYbarDeci))
|
|
|
//varY += diffYYbar ** 2
|
|
|
}
|
|
|
+ //当输入的两个数组完全相同时,计算相关系数会导致除以零的操作,从而产生 NaN(Not a Number)的结果。为了避免这种情况,可以在计算相关系数之前先进行一个判断,如果两个数组的标准差为零,则相关系数应为1
|
|
|
+ if varXDeci.IsZero() && varYDeci.IsZero() {
|
|
|
+ r = 1
|
|
|
+ return
|
|
|
+ }
|
|
|
sqrtVal, _ := varXDeci.Mul(varYDeci).Round(4).Float64()
|
|
|
//fmt.Println("sqrtVal:", sqrtVal)
|
|
|
sst := math.Sqrt(sqrtVal) // 平方根
|