1 package org.catacomb.numeric.data;
2
3 import java.util.ArrayList;
4
5
6
7
8 public class VectorSet {
9
10 String[] names;
11 int nvec;
12 int npoint;
13
14 ArrayList<FloatRow> rows;
15 double[][] adat;
16
17 public VectorSet() {
18 rows = new ArrayList<FloatRow>();
19 }
20
21
22
23 public void setNames(String s) {
24 names = s.split("[, \n\r\t]+");
25 nvec = names.length;
26 }
27
28
29 public void addRow(FloatRow fr) {
30 rows.add(fr);
31 }
32
33
34 private void digestRows() {
35 npoint = rows.size();
36 adat = new double[nvec][npoint];
37 int ir = 0;
38
39 for (FloatRow fr : rows) {
40 double[] rd = fr.getValue();
41 for (int k = 0; k < nvec && k < rd.length; k++) {
42 adat[k][ir] = rd[k];
43 }
44 ir += 1;
45 }
46 }
47
48
49
50 public FloatVector[] getVectors() {
51 digestRows();
52 FloatVector[] fva = new FloatVector[nvec];
53 for (int i = 0; i < nvec; i++) {
54 fva[i] = new FloatVector(names[i], adat[i]);
55 }
56 return fva;
57 }
58
59
60 }