使用la4j java库创建SparseMatrix

时间:2015-05-22 14:54:39

标签: java matrix sparse-matrix storing-data

在包中

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构造函数失败?

感谢。

1 个答案:

答案 0 :(得分:0)

la4j中的

SparseMatrixan abstract class。您可以使用具体实例的构造函数创建稀疏矩阵的实例:CRSMatrixCCSMatrix

我真的不明白有关zero方法的问题。但根据文档,它完全符合您所说的 - 创建零矩阵(全零的矩阵)。我建议使用zero方法而不是调用构造函数。

SparseMatrix a = CRSMatrix.zero(1000, 1000); // 1000x1000 matrix