我正在从事一个需要为 74000 X 640 维度的矩阵获取 SVD(单值分解)的项目。我尝试了这三个库:Jama、高效的 Java Matrix 库 (EJML) 和 OjAlgo。我根据 SVD 中的 Java Matrix 基准内存结果选择这三个库。起初我使用 Jama,但后来我发现行数必须 >= 列数,我需要在另一个步骤中获取任何矩阵维度的 SVD。所以,我搬到了 EJML 和 OjAlgo,但我对 EJML 有一些疑问/问题:
EJML--> 它为 SVD 提供了正确的结果,但是当我将矩阵大小扩大到 74000 X 640 维度时,它给了我堆内存异常,那么库的矩阵大小是否有限制?
这是我用于创建矩阵的代码:
SimpleMatrix A = new SimpleMatrix(74000, 640);
请帮助我理解并解决我的问题。
谢谢