Использование 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);

Другие вопросы по тегам