我想存储4个簇之间的距离,所以我得到了簇x和簇y之间距离的总和,反之亦然 - 因为簇x和簇y之间的距离y!=簇y和簇x-然后除它们是2,所以它是无方向性的。
我在这里面临的问题是重复。如何最终只有6个距离,并避免首先在阵列中添加重复项。
注意:
我使DistanceBetweenClusterToAnother成为一个二维数组,目的是解决这个问题,因为我无法用一维数组解决它。
this.clusterSize()等于4。
for (int k = 0; k < this.clusterSize(); k++) {
for (int j = 0; j < this.clusterSize(); j++) {
if (k != j) {
DistanceBetweenClusterToAnother[k][j] = GADOfCluster1toCluster2[k][j] + GADOfCluster1toCluster2[j][k];
DistanceBetweenClusterToAnother[k][j]= DistanceBetweenClusterToAnother[k][j]/2;
}
}
}
答案 0 :(得分:0)
不确定它是否是最佳方式,但您可以检查数组是否匹配。
if (valueYouWantToCheck == Array.getIndex(i))
Array.add(valueYouWantToCheck);
答案 1 :(得分:0)
在外循环的当前位置之后启动内循环。此外,您可以在一行中取平均值:
for (int k = 0; k < this.clusterSize(); k++) {
for (int j = k + 1; j < this.clusterSize(); j++) {
DistanceBetweenClusterToAnother[k][j] = (GADOfCluster1toCluster2[k][j] + GADOfCluster1toCluster2[j][k]) / 2;
}
}