Java矩阵库

时间:2012-05-30 11:36:43

标签: java matrix colt

我想知道任何着名的Java矩阵库(如Colt或EJML)是否实际提供与MatLab类似的功能?例如,我似乎无法在API简单方法的定义中找到彼此相加或相减两个矩阵/向量的任何地方,这似乎是最常用的操作。我错过了什么吗?

6 个答案:

答案 0 :(得分:31)

线性代数的一些Java库是:

编辑也许我们可以扩展这个列表,只要有人知道 - 世界一直在移动:

注意:我个人:我在自己的项目中使用Apache Commons Math和Colt(http://www.finmath.net)。虽然公共数学是积极开发的,但我发现Colt在某些任务中仍然更快(如特征值分解)。出于这个原因,我使用某种包装器,它允许我快速切换底层库(我只需要一些东西,如求解方程组和特征值分解)。

答案 1 :(得分:13)

尝试Apache Commons Math库。 org.apache.commons.math3.linear包包含您想要的功能。 Home page

答案 2 :(得分:2)

COLT的界面为您提供了一个通用的OP:assign(matrix, function),您可以使用它来添加或减去矩阵和向量。

正如assign()的javadoc所说:

  

将函数的结果分配给每个单元格;   x[row,col] =function(x[row,col],y[row,col])

因此,通过使用添加函数function - 您可以添加矩阵。

答案 3 :(得分:2)

还有la4j库支持函数式编程功能作为仿函数。您可以将transform()方法与手动高阶函数一起使用。

答案 4 :(得分:1)

您可以使用this one。它非常简单,并提供基本的矩阵运算。

您可以添加/减去/乘以等2d矩阵和向量。

答案 5 :(得分:0)

您可以尝试使用我的新Java库(与Java 6+兼容),该库可用于各种应用程序,尤其是用于执行多线程矩阵计算(使用多线程扩展JAMA;目前比可用开放库快30%)源库)。您可以在GitHub上查看它:

https://github.com/b-io/io.barras/tree/master/java/jupiter

请注意,每个项目都相互独立,并且受非常宽松的MIT许可证的约束。