在包中
org.la4j.matrix.SparseMatrix
有一些构造函数可用于创建新的SparseMatrix,它们也在文档中http://la4j.org/apidocs/org/la4j/matrix/SparseMatrix.html#SparseMatrix-int-int-
但是如果我尝试使用像这样的构造函数
SparseMatrix A = new SparseMatrix(1000, 1000);
Eclipse说
Multiple markers at this line
- Cannot instantiate the type SparseMatrix
因此我尝试使用
SparseMatrix G = SparseMatrix.zero(4, 4);
G.set(0,2, 3.4);
但它会创建一个零的大矩阵。
0,000 0,000 3,400 0,000
0,000 0,000 0,000 0,000
0,000 0,000 0,000 0,000
0,000 0,000 0,000 0,000
为什么不只存储非零值?为什么编译器使用SparseMatrix构造函数失败?
感谢。
答案 0 :(得分:0)
SparseMatrix
为an abstract class。您可以使用具体实例的构造函数创建稀疏矩阵的实例:CRSMatrix
或CCSMatrix
。
我真的不明白有关zero
方法的问题。但根据文档,它完全符合您所说的 - 创建零矩阵(全零的矩阵)。我建议使用zero
方法而不是调用构造函数。
SparseMatrix a = CRSMatrix.zero(1000, 1000); // 1000x1000 matrix