2013-03-13 4 views
0
 double [][] AdjacencyMat = new double[baseSize][baseSize]; 
     for (int i = 0; i < baseSize; ++i) 
     { 
      for (int j =0; j < baseSize; ++j) 
      { 
       AdjacencyMat[i][j] = 0; 
      } 
     } 
     DoubleMatrix matrix = new DoubleMatrix(AdjacencyMat); 

Я пытаюсь выполнить JBLAS для своих операций с матрицами. В следующем коде я получаю ArrayIndexOutOfBoundsException.Индекс массива из связанного исключения с использованием jblas

java.lang.ArrayIndexOutOfBoundsException: 0 
at org.jblas.DoubleMatrix.<init>(DoubleMatrix.java:370) 

Что я делаю неправильно? Любая помощь приветствуется.

+2

Прежде всего, вам нужно сообщить нам, что находится в строке 370 в файле 'DoubleMatrix.java'? –

+0

Является ли 'baseSize> 0'? –

ответ

2

В отличие от создания новой матрицы и заполнение его нулями вы можете использовать статический метод фабрики в DoubleMatrix класса как этот

DoubleMatrix matrix = DoubleMatrix.zeros(baseSize, baseSize); 

Это способ обойти проблемы. См. javadoc для более классного материала.

0

Вам необязательно назначать 0 элементам.

double[][] a = new double[10][10]; 

сам будет создавать массив, все элементы будут как 0.0 по умолчанию.

Смежные вопросы