我想基于每一行的得分对矩阵的行进行排名,并且使用互信息来计算该得分。矩阵有14行,它们的值不同,但是当我尝试在这一行中用分数打印时
System.out.println(array+" "+score);
它只显示第一行重复14次而得分正确(它是针对矩阵的不同行计算的)
这是代码
MutualInformation mutuObject= null;
System.out.println("calculateMutualInformation ");
double [] fX =new double [numberofrows];
int rows=0, cols=0;
List<Double> array= new ArrayList<Double>();
for(int r = 0; r < numberoffeatures-1; r++)
{
rows=rowlist.get(r);
cols= collist.get(r);
for(int c = 0; c < numberofrows; c++)
{
int valf= datasetMat[c][r];
fX[c] = valf;
// System.out.print (fX3[c]+ " ");
array.add(fX[c]);
}
double score= mutuObject.calculateMutualInformation(fX3,colclassVec);
System.out.println(array+" "+score);
}
System.out.println("the array" +array);
Collections.sort(array,Collections.reverseOrder());
System.out.println("Sorted List : " + array);
array = array.subList(0,10);
System.out.println("ranked List : " + array);
谢谢