У меня есть данные, которые можно визуально представить в виде 12 линейных диаграмм (частот) с двумя линейными рядами в каждом из них (с именем «L», «R»), и каждая строка содержит 3000 X & значений Y.В каком объекте хранятся данные?
Теперь я хранить мои данные в 2-х объектах:
double[][][][] data = new double[12][2][3000][2];
double[] frequencies = new double[]{2.22, 2.3, 2.39,
2.48, 2.57, 2.67, 2.77, 2.89, 3.0, 3.18, 3.37, 3.57};
Я хочу, чтобы хранить свои данные в 1 объекте, но я не знаю, как я могу это сделать. Некоторые псевдокод:
List<Object[]> data = new ArrayList<Object[]>();
double[][] xyValues = new double[3000][2];
data.add{2.22, 'L', xyValues};
data.add{2.22, 'R', xyValues};
data.add{2.3, 'L', xyValues};
data.add{2.3, 'R', xyValues};
....
Тогда я хочу, чтобы получить X & Y значения массива, указав частоту параметров и ряд линий:
double[][] xyValues = getXYValuesFromData(2.3, 'L');
Update:
Спасибо всем за ваши идеи. Я пересмотрел свои требования.
import java.util.ArrayList;
import java.util.Random;
public class Test {
public static void main(String[] args) {
//class for storing my data
ScanData myData = new ScanData();
//-----------------------adding data-------
//There are 4 possible series(L, R, I, V), I want put them independently,
// so e.g. I can put just any one or any two
myData.put(2.22, 'L', new XYvalues());
myData.put(2.22, 'R', new XYvalues());
myData.put(2.22, 'I', new XYvalues());
myData.put(2.22, 'V', new XYvalues());
myData.put(2.48, 'I', new XYvalues());
myData.put(3.57, 'I', new XYvalues());
//----------------------getting data--------
//get xyValues of first frequency in my data and R-serie:
double[][] xyValuesRserie = myData.freqIndex(0).r();
//get frequency value of first frequency:
double freq = myData.freqIndex(0).freq(); //2.22
//get xyValues of l-serie by frequency value
double[][] array = myData.freq(5.22).l();//[3000][2]
}
}
class XYvalues{
double[][] XYValues(){
double[][] xyValues = new double[3000][2];
Random random = new Random();
for (int i=0; i< xyValues.length; i++){
xyValues[i][0] = (double) (i - xyValues.length/2)*10;
xyValues[i][1] = (double) random.nextDouble();
}
return xyValues;
}
}
class ScanData{
//?????
}
Что ваш массив 4D (данные) хранения? – user3437460
Я описал свой 4d-массив: частоты, серии, datapoints2d (xy) –
Мой случай выглядит как хеш-таблица со сложным ключом из двух значений: частота и серийное имя –