我已經創建了一個方法來計算方差,但是,我們只是說我有一個邏輯錯誤。而不是獲得方差,我得到輸出爲無窮大。計算方差我得到無窮大
見輸出:
============ DataSet Test ================================
10 Data Items
[5.55, 47.9, 21.27, 6.59, 42.96, 74.3, 99.17, 50.99, 77.36, 62.76]
Minimum: 5.55 at index 0
Maximum: 99.17 at index 6
Data Range: 93.62
Median : 56.875
Mean : 48.885000000000005
Variance : Infinity
Std Dev : 0.0
這裏是代碼:
//Return the variance of the points in this DataSet
public double variance()
{
double[] meanVar = this.data;
for (int k = 0; k < meanVar.length; k++)
{
meanVar[k] = meanVar[k] - mean();
meanVar[k] = Math.pow(meanVar[k],2.0);
}
double variance = 0.0;
for (int k = 0; k < meanVar.length; k++)
variance = variance + meanVar[k];
variance = variance/size();
return variance;
}
檢查size()的值,並試圖找出爲什麼這個值等於'0'。 –
我檢查過,大小的值與數據數組的長度相同。只是爲了檢查我把它改爲variance = variance/meanVar.length;仍然會遇到無窮大的錯誤。 – Jason091
那麼這意味着你的數組的長度爲0. –