【问题标题】:Java library that has matlab equivalent functions具有 matlab 等效功能的 Java 库
【发布时间】:2013-04-06 20:05:25
【问题描述】:

我正在寻找一个 Java 库,它与 matlab 的 Matrix 函数以及多项式插值等领域的其他函数非常相似。

如果不存在这样的库,我会考虑构建自己的库,但使用现有的 Matrix 或科学计算库来完成繁重的工作 - 如果我要这样做,哪些库将成为后端的候选库为了这样的努力

【问题讨论】:

    标签: java matlab matrix scientific-computing


    【解决方案1】:

    Eigen 是 C++ 中最常用(也是最快)的矩阵计算库之一,它有一个 java 包装器:jeigen

    它允许人们操纵完整和稀疏的矩阵,并使操作成为其中之一。也值得一试。

    【讨论】:

    • 感谢 Acorbe,我正在考虑的一件事是拥有多个后端。那个可以插件。
    • 但是 Jeigen 没有实现稀疏求解器。 I had to do it myself.
    【解决方案2】:

    【讨论】:

    • 感谢@prashant,我前一阵子尝试了jama,感觉它已经足够抛光了。您是否同意我的评估,或者您认为我判断错误。谢谢。
    • 我认为对于矩阵来说,它可以说是目前最好的包(在 java 中)
    【解决方案3】:

    尝试查看la4j(Java 的线性代数)。它支持密集矩阵和稀疏矩阵。这里只是一个简单的使用 la4j 的功能特性的例子:

    // reads the dense matrix from the CSV file
    Matrix a = new Basic2DMatrix(Mattrices.asSymbolSeparatedSource("matrix.csv", ","));
    
    // calculates the sum of all elements of the matrix 'a'
    double sum = a.fold(Matrices.asSumAccumulator(0));
    
    // creates a new matrix 'b', that contains elements of matrix 'a' multiplied by '2'.
    Matrix b = a.transform(Matrices.asMulFunction(2));
    

    获取最新版本 la4j 的最佳方式 - 访问它是 GitHub page

    【讨论】:

      【解决方案4】:

      我使用 Colt 库进行矩阵运算。

      查看:http://acs.lbl.gov/software/colt/api/index.html

      我认为它非常好用且易于使用,比我已经尝试过的 Apache Commons-Math 和 EJML 更好。

      我建议您尝试所有提到的库并选择更接近您需求的库。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多