我想按列对 2D 数组求和并求平均值,如果 e[i][j]
的值大于 0 ,计数并求和。但我不知道输出是 NaN
,
我该如何解决这个问题?
public class d_2DArray {
public static void main(String [] args){
double[][] e= {{0.0,0.0,0.0,0.0},
{0.0,0.6,0.0,0.0},
{0.0,0.2,0.5,0.1},
{0.0,0.2,0.5,0.4},
{0.0,0.2,0.5,0.7},
{0.0,0.0,0.0,0.9}};
double[] avg= new double[4];
double[] sum= new double[4];
int i,j,k=0;
int[][] x=new int [6][4] ;
//average of column
for(j=1;j<e[1].length;j++){
sum[j]=0.0;
for( i= 1; i < e.length; i++)
if(x[i][j]==1){
sum[j] +=e[i][j];
k++;
}
avg[j]= sum[j]/k ;
System.out.println("Average j="+avg[j]);
}
}
}
最佳答案
此处 k 的值在程序结束时仍为 0,因此将 0 除以 0 得到 NaN。
关于java - 诊断 NaN 的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8162714/