JAVA中的大型稀疏矩阵特征分解

时间:2012-08-07 02:59:48

标签: java matrix sparse-matrix svd

我正在寻找一个Java中的线性代数库,它可以处理大的“稀疏”矩阵(比如100万乘100万)并在矩阵上执行像SVD,LU这样的分解。

我环顾四周并尝试了COLT,但它只能处理固定数量的元素。

EJML网站还提到它无法处理这个问题。 (http://code.google.com/p/efficient-java-matrix-library/wiki/FAQ)

我知道C ++中有一些可以处理这种大小的数据的软件包,但是,由于我拥有围绕Java构建的所有其他代码,所以我无法从Java迁移。

有什么想法?非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

尝试查看la4j(线性代数for Java)。它处理稀疏矩阵和密集矩阵。所以你可以尝试这样的事情:

Matrix a = new CRSMatrix(...); // Compressed Row Storage format
Matrix vd[] = a.decompose(Matrices.EIGEN_DECOMPOSITOR); // vd[0] = V, vd[1] = D

因此,它适用于稀疏矩阵,但我不确定(100万X一百万)大小。