有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java奇异值分解实现

我有一个用C实现的SVD库,但我想在Java程序中调用它的函数。有没有简单的方法?或者有人建议用Java实现SVD的链接


共 (6) 个答案

  1. # 1 楼答案

    当我不得不用Java做矩阵运算时,我使用JAMA: A Java Matrix Package

    我知道它有SVD,但我不能保证该软件包的效率或当前状态

  2. # 2 楼答案

    Adrian Kuhn和David Erni最近发布了SVDLIBJ,这是SVDLIBC的纯Java端口。如果你想做一个精简的SVD(你只需要几个最奇异的值或向量),这可能是最好的选择。JAMA、COLT和apachecommons数学包都执行完整的SVD

    如果您想将SVD用作独立程序,S-Space软件包也有一个命令行工具,可以像SVDLIBC一样使用SVDLIBJ,还支持更多矩阵格式

  3. # 3 楼答案

    可以使用Java Native Interface(JNI)从java程序中调用本机代码。准备起来并不难

  4. # 5 楼答案

    如果它是纯C,你可以看看JNA,这将允许你相对容易地从java调用C

    还有JNI和/或SWIG,但它们更为复杂

  5. # 6 楼答案

    Colt是另一个包含矩阵和SVD的Java数学库