Класс DataMatrix содержит двумерный массив как частный переменная экземпляра (по крайней мере, я так считаю).
Теперь я хотел бы найти среднее значение строки этого массива, но я заметил, что когда я вызываю метод для вычисления в среднем массив сбрасывается до значения по умолчанию значение.
Я уверен, что это ошибка новичка, но заранее благодарю вас за любую помощь.
Вот класс DataMatrix:< /p>
Код: Выделить всё
public class DataMatrix {
private String rawInput;
private double[][] finalArr;
private String[] rows;
private String[][] arr;
public DataMatrix(){
rawInput = "";
rows = new String [1];
arr = new String [1][1];
finalArr = new double[arr.length][arr[0].length];
}
public void setInput(String input){
rawInput = input;
}
public void setDoubleArray(){
rows = rawInput.split("\n");
arr = new String [rows.length][];
// Temporarily hold the values in the enhanced for loop, and re-split into the 2D array
int counter = 0;
for(String rowData: rows){
arr[counter] = rowData.split(",");
counter++;
}
// Convert the string to a double
double[][] finalArr = new double[arr.length][arr[0].length];
for (int i = 0; i < arr[0].length; i++) {
finalArr[0][i] = Double.valueOf(arr[0][i]);
}
for (int i = 0; i < arr.length; i++) {
finalArr[i][0] = Double.valueOf(arr[i][0]);
}
// Debug
System.out.println(finalArr[0][0]+ " Size: "+ finalArr.length);
}
public double calcRowAvg() {
//Debug
System.out.println(finalArr[0][0] + " Size: "+ finalArr.length);
return 0;
}
Код: Выделить всё
public class DataRun {
public static void main(String[] args) {
//Make sure the user passed the command line argument
if (args.length != 1) {
System.out.println("Assignment1 takes exactly one command-line argument.");
System.out.println("Usage: java Assignment1 some_file.csv");
System.exit(0);
}
// Set filename to argument
String csvFileName = args[0];
// Instantiate file reader
CSVReader fileReader = new CSVReader();
// Read the file into a string
String text = fileReader.readFile(csvFileName);
// Start array processing
DataMatrix CSVCalc = new DataMatrix();
CSVCalc.setInput(text);
CSVCalc.setDoubleArray();
double rowAvg = CSVCalc.calcRowAvg();
double colAvg = CSVCalc.calcColAvg();
System.out.println("Row: " + rowAvg + " Col: " + colAvg);
}
Подробнее здесь: https://stackoverflow.com/questions/419 ... et-in-java