【问题标题】:Java matrix libraries [closed]Java矩阵库[关闭]
【发布时间】:2012-06-04 15:25:50
【问题描述】:

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

【问题讨论】:

    标签: java matrix colt


    【解决方案1】:

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

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

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

    【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 是的,但这可能不如 Colt 或 EJML 效率高
    【解决方案3】:

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

    正如assign() 的 javadocs 所说:

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

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

        【讨论】:

          【解决方案6】:

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

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-10-06
            • 2010-10-24
            • 1970-01-01
            • 2011-01-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多