我将 Colt 用于其稀疏矩阵实现,但是一旦我在这些上应用代数,它们就变成了密集矩阵。即,如果我将两个稀疏矩阵 A 和 B 相乘并想将结果分配给第三个矩阵 C,我不能将 C 声明为稀疏矩阵。我有很多内存问题,因为我操作大型矩阵(如果我使它密集,则在 RAM 中为 1GB)。我尝试了以下方法:
Algebra al = new Algebra();
SparseDoubleMatrix2D a = generateSparseMatrix(); // whatever is here
SparseDoubleMatrix2D aCarre = (SparseDoubleMatrix2D) al.mult(a, al.transpose(a));
但是我得到了一个java.lang.ClassCastException
(不能从密集转换为稀疏)。
预先感谢,
小牛78f