Search code examples
javaarraysmultidimensional-arrayinitializationreturn

How do I reassign a returned array to a preexisting array in java


This is the code, the sigmoid and dot methods return a 2d array. In the sigmoid and dot methods the Arrays, named outputs, are defined as so;
double[][] outputs = new double[size1][size2];, and are returned with return outputs;.

This section in the code returns the error "variable outputs might not have been initialized" which is caused by this peice of code;
System.out.println("Outputs after training are: " + Arrays.toString(outputs));.

double[][] outputs;
for(int i = 0; i < 1; i++){
    inputLayer = trainingInputs;
    outputs = sigmoid(dot(inputLayer, synapticWeights));
}
System.out.println("Outputs after training are: " + Arrays.toString(outputs));

I'd like to get rid of the error so the array outputscan be printed into console.


Solution

  • You have declared a variable outputs it may get initialised in your for loop. You should initialize it with null at the time of declaration. Your code should be like this. Code snippet below :

    double[][] outputs = null;
    for(int i = 0; i < 1; i++){
      inputLayer = trainingInputs;
      outputs = sigmoid(dot(inputLayer, synapticWeights));
    }
    System.out.println("Outputs after training are: " + Arrays.toString(outputs));