【问题标题】:Create a SparseMatrix using la4j java library使用 la4j java 库创建一个 SparseMatrix
【发布时间】:2015-05-22 14:54:39
【问题描述】:

包装内

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

谢谢。

【问题讨论】:

    标签: java matrix sparse-matrix storing-data


    【解决方案1】:

    SparseMatrix 在 la4j 中是 an abstract class。您可以使用具体实例的构造函数创建稀疏矩阵的实例:CRSMatrixCCSMatrix

    我不太明白zero 方法的问题。但根据文档,它完全按照您的说法 - 创建一个零矩阵(全为零的矩阵)。我建议使用zero 方法而不是调用构造函数。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-09
      • 2014-07-06
      • 1970-01-01
      • 1970-01-01
      • 2013-05-25
      • 1970-01-01
      • 2013-07-21
      相关资源
      最近更新 更多