我有一个2d数组质心,其每个元素本身就是一个数组。如何查看说centroids[1][1]
列表是否包含任何元素?
我认为这段代码可行,但事实并非如此。
for (int j=0; j<centroids[clusterAssignment[i]].length;j++)
if(centroids[clusterAssignment[i]].length==0)
首先是因为centroids[clusterAssignment[i]].length
没有给出正确的质心数列表,只是告诉我它是2,因为质心有x和y(2d)。
其次,因为我不知道如何在所有可用质心的列表中检查作为数组的clusterAssignment[i]
对于质心i的长度是否为零。
更新:此代码不起作用:
for (int i = 0; i < centroids.length; i++){
//System.out.println("centroids[clusterAssignment[i]] "+ Arrays.toString(centroids[clusterAssignment[i]]));
//System.out.println("clusterassignment of centroid is"+centroids[clusterAssignment[i]]);
for (int j=0; j<centroids[clusterAssignment[i]].length;j++)
// System.out.println("cluster assignment of centroid is: "+Arrays.toString(centroids[clusterAssignment[i]]));
if (centroids[clusterAssignment[i]] == null){
//save the centroid number if there's no point assigned to it
orphanCentroid = i;
System.out.println("orphan centroid i is "+i);
hasOrphanCentroid=true;
break;
}
}
答案 0 :(得分:0)
试试这个:
for (int j=0; j<centroids[clusterAssignment[i]].length;j++)
if(centroids[clusterAssignment[i]]==null)