Использование ojalgo: создание матрицы из массива
Я пытаюсь использовать ojAlgo для решения некоторых задач линейной алгебры в Java. Я спрашиваю, есть ли какой-нибудь "умный" способ создать матрицу, используя существующий массив.
Это мой наивный подход:
final double[][] myArray = {
{ 1.1, 1.2, 1.3, 1.4, 1.5 },
{ 2.1, 2.2, 2.3, 2.4, 2.5 },
{ 3.1, 3.2, 3.3, 3.4, 3.5 }
};
final Builder<PrimitiveMatrix> myBuilder = PrimitiveMatrix.getBuilder(myArray.length, myArray[0].length);
for (int i = 0; i < myArray.length; i++) {
for (int j = 0; j < myArray[0].length; j++) {
myBuilder.set(i, j, myArray[i][j]);
}
}
final PrimitiveMatrix myMatrix = myBuilder.build();
System.out.println(myMatrix);
Это работает, но это слишком много проблем, чтобы сделать каждый раз. Я мог бы написать класс, который делает именно это, и вызывать его каждый раз, когда я хочу это сделать, но мне интересно, есть ли более простой подход.
Есть ли более простой подход?
1 ответ
Вы действительно хотите создать (неизменный) экземпляр BasicMatrix? и читали ли вы вики-страницу ojAlgo Getting Started о выборе между различными реализациями матриц и как их создавать?
Существует класс / метод org.ojalgo.array.ArrayUtils#wrapAccess2D(double[][]), который может вам помочь, но это зависит от того, каким будет ваш следующий шаг...
... или почему бы тебе просто не позвонить PrimitiveMatrix.FACTORY.rows(myArray);