33

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

4

6 回答 6

41

一些用于线性代数的 Java 库是:

编辑也许我们可以在遇到任何人时扩展此列表,并且您知道-世界在不断发展:

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

于 2013-05-05T19:55:12.273 回答
15

试试 Apache Commons 数学库。org.apache.commons.math3.linear 包包含你想要的函数。主页

于 2012-05-30T11:47:02.027 回答
2

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

正如 javadocsassign()所说:

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

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

于 2012-05-30T11:44:53.337 回答
2

还有一个la4j库支持函数式编程特性作为函子。您可以使用带有手动高阶功能的 transform() 方法。

于 2012-12-28T07:44:37.543 回答
1

你可以用这个。它非常简单并提供基本的矩阵运算。

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

于 2012-05-30T11:42:48.877 回答
0

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

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

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

于 2019-12-02T00:46:43.763 回答