-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCluster.java
70 lines (60 loc) · 1.49 KB
/
Cluster.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import java.util.ArrayList;
public class Cluster {
private ImageVector repVector;
private ArrayList<ImageVector> vectors;
private int n, m;
Cluster(ArrayList<ImageVector> vectors)
{
this.vectors = vectors;
repVector = ImageVector.getAverage(vectors);
this.n = repVector.getNumberOfRows();
this.m = repVector.getNumberOfColumns();
}
Cluster(int n, int m)
{
vectors = new ArrayList<ImageVector>();
repVector = new ImageVector(n, m);
this.n = repVector.getNumberOfRows();
this.m = repVector.getNumberOfColumns();
}
public int get(int i, int j)
{
return repVector.get(i, j);
}
public ArrayList<ImageVector> getVectors()
{
return vectors;
}
public void addVector(ImageVector v)
{
vectors.add(v); // handle error
}
public void calcRep()
{
repVector = ImageVector.getAverage(vectors);
}
public double getMeanSquareError()
{
double ret = 0;
for (ImageVector v : vectors)
ret += repVector.getDistance(v);
ret /= vectors.size();
return ret;
}
public void clearVectors()
{
vectors.clear();
}
public int getNumberOfRows()
{
return n;
}
public int getNumberOfColumns()
{
return m;
}
public ImageVector getRepVector()
{
return repVector;
}
}