用Java处理大型矩阵

Phu*_*anh 7 java matrix

我目前需要使用大小为48K x 50K的矩阵进行奇异值分解.

我尝试了JAMA,但它只适用于行>列.我尝试过PCOLT,JBLAS,但是当行*列> MAX_INT时它们会返回错误

有什么建议我该怎么办?

对不起,如果我在上面的行中犯了任何错误.

非常感谢提前!

Pie*_*ter 6

我在执行SVD计算时遇到了类似的问题,我的经验是:不要在Java中这样做.有一些工具可以更有效地完成这项工作.如果您确实需要Java,可以考虑构建一个从代码中调用该工具的接口.最后我用[R .我通过将矩阵存储在一个文件中手动使用它,该文件可以由R作为矩阵读取.

顺便说一句,如果矩阵是稀疏的,那么可以进行各种优化,这将减少内存使用量和输出文件的大小(如果您选择使用一个).

否则,请查看此线程以查看是否有帮助:在Java中处理大型数据结构