Подтвердить что ты не робот

Библиотеки Java-матриц

Мне было интересно, действительно ли какие-либо из известных матричных библиотек для Java, таких как Colt или EJML, аналогичны функциям MatLab? Например, я не могу найти нигде в определении своего простого API-интерфейса для добавления или вычитания двух матриц/векторов друг другом, что, по-видимому, является наиболее распространенной операцией. Я что-то пропустил?

4b9b3361

Ответ 1

Попробуйте библиотеку Apache Commons Math. В пакете org.apache.commons.math3.linear содержатся функции, которые вы хотите. Домашняя страница

Ответ 2

Некоторые библиотеки Java для линейной алгебры:

РЕДАКТИРОВАТЬ, может быть, мы можем расширить этот список, когда кто-то сталкивается, и вы знаете - мир продолжает двигаться:

Примечание: лично: я использую Apache Commons Math и Colt в своем собственном проекте (http://www.finmath.net). Хотя математика общего достояния активно развивается, я обнаружил, что Colt все еще быстрее в некоторых задачах (например, разложение по собственным значениям). По этой причине я использую какую-то оболочку, которая позволяет мне быстро переключать основную библиотеку (мне нужны только некоторые вещи, такие как решение систем уравнений и разложение по собственным значениям).

Ответ 3

Интерфейс для COLT дает вам общий OP: assign(matrix, function), который вы можете использовать для добавления или вычитания матриц и векторов.

Поскольку javadocs для assign() говорит:

Назначает результат функции каждой ячейке; x[row,col] =function(x[row,col],y[row,col]).

Итак, используя функцию добавления как function - вы можете добавить матрицы.

Ответ 4

Существует также la4j библиотека, которая поддерживает функции функционального программирования как функторы. Вы можете использовать метод transform() с ручной функцией hi-order.

Ответ 5

Вы можете использовать это. Это очень просто и обеспечивает основные матричные операции.

Вы можете добавить/вычесть/умножить и т.д. 2d матрицы и векторы.