📄 cluster.java
字号:
/*
* Cluster.java
*
* Created on 2007年5月29日, 上午12:35
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package cindy;
import java.util.*;
/**
*
* @author njchenyi
*/
public class Cluster {
int index =0;
Vector v;
Sample sam;
/** Creates a new instance of Cluster */
public Cluster() {
v = new Vector();//样本堆栈
sam = new Sample();
}
public Vector getSample(){
return v;
}
public void addSample(Sample s){
v.add(s); //添加样本
}
public void removeSample(Sample s){
v.removeElement(s);//删除样本
}
//判断是否在聚类中
public boolean isInCluster(Sample s){
for(int i =0; i<v.size();i++){
if(v.elementAt(i).equals(s))
return true;
}
return false;
}
//获取样本个数
public int getSampleNo(){
return v.size();
}
//获取重心点
public double[] getWeightPoint(){
//int i = v.size();
sam = ((Sample)v.elementAt(0));
int NO = sam.getParmNo();
double[] temp = new double[NO];
for(int i=0; i<v.size();i++){
for(int j=0; j<NO;j++){
sam=(Sample)v.elementAt(i);
temp[j]=temp[j]+(sam.getParam())[j];
}
}
for(int j=0; j<NO;j++){
temp[j] = temp[j]/v.size();
}
return temp;
}
//获取距离平方和
public double getDistanceSum(Sample s){
double distanceSum=0.0;
double distance = 0.0;
int NO = s.getParmNo();
for(int i =0; i<NO; i++){
distance = Math.pow((s.getParam()[i]-getWeightPoint()[i]),2);
distanceSum = distance + distanceSum;
}
return distanceSum;
}
public double getClusterDistanceSum(){
double clusterDistanceSum=0.0;
for(int i=0; i<v.size();i++){
clusterDistanceSum=clusterDistanceSum+getDistanceSum((Sample)v.elementAt(i));
}
return clusterDistanceSum;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -