2015-01-19 4 views
0

Мне нужно найти корреляцию матрицы. У меня есть файл csv, и я сохранил его в базе данных. Из базы данных я хранил их в матрицу хг .xt содержит 11 переменных (столбцов), 10000 (строки) .Теперь я называется функция computeCorrelationMatrix (х), но он дает ошибкуПоиск корреляционной матрицы в java

(тип несоответствия: не может конвертировать из RealMatrix в RealMatrix [] [])

RealMatrix corr[][] = new RealMatrix [tNumber+1][tNumber+1];// defining corr[][] matrix. 

corr =pc.computeCorrelationMatrix(xt); (Found this function in API) 

Может ли тело наставит меня погода это правильный способ делать или нет? Если нет, можете ли вы предложить мне, как найти?

+0

Какой API вы используете? 'RealMatrix' не является стандартным Java SE или EE API. –

+0

Примеры кода Java для org.apache.commons.math.linear.RealMatrix – NGKLinga

+1

public RealMatrix computeCorrelationMatrix (матрица RealMatrix) { int nVars = matrix.getColumnDimension(); RealMatrix outMatrix = новая BlockRealMatrix (nVars, nVars); for (int i = 0; i NGKLinga

ответ

3

Я думаю, что сообщение об ошибке (в сущности) говорит вам, что

RealMatrix corr[][] = new RealMatrix [tNumber+1][tNumber+1]; 

должен быть

RealMatrix corr; 

Что ваш код в настоящее время говорит, чтобы создать 2D массив, элементами которого являются RealMatrix. И кажется, что computeCorrelationMatrix возвращает один экземпляр RealMatrix ... не двухмерный массив из них.

Следует также отметить, что инициализация 2D-массива и последующее присвоение ему бессмысленно. Следующее назначение будет перезаписывать ссылку, и значение, которое вы создали при инициализации, будет выброшено.

Обратите внимание: computeCorrelationMatrix создает объект-матрицу и возвращает ее. Вам не нужно создавать их самостоятельно ... не говоря уже о двухмерном массиве матриц!