【问题标题】:Compute the null space of a sparse matrix计算稀疏矩阵的零空间
【发布时间】:2017-09-04 11:44:27
【问题描述】:

我在 R 中找到了用于查找常规矩阵的零空间的函数(null OR nullspace),但我找不到稀疏矩阵(sparseMatrix)的任何函数或包。

有人知道怎么做吗?

【问题讨论】:

    标签: r sparse-matrix


    【解决方案1】:

    如果你看一下ggm::null的代码,你会发现它是基于输入矩阵的QR分解。

    另一方面,Matrix 包提供了自己的方法来计算稀疏矩阵的QR 分解。

    例如:

    require(Matrix)
    A <- matrix(rep(0:1, 3), 3, 2)
    As <- Matrix(A, sparse = TRUE)
    
    qr.Q(qr(A), complete=TRUE)[, 2:3]
    qr.Q(qr(As), complete=TRUE)[, 2:3]
    

    【讨论】:

    • 嗨文森特。我用了你的评论,很棒。虽然矩阵和它的转置都被分解了,但是在稀疏的情况下,当行数小于列数时,它不会分解。例如:A qr.Q(qr(A), complete=TRUE) and > qr .Q(qr(As), complete=TRUE) 和 > qr.Q(qr(t(A)), complete=TRUE) 工作但 > qr.Q(qr(t(As)), complete=TRUE) .local(x, ...) 中的错误:A 必须有 #{rows} >= #{columns}。非常感谢。最佳
    • 我收到同样的错误信息。我不知道为什么它适用于密集矩阵但对稀疏矩阵无效......
    • 非常感谢您的关注。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 2014-10-11
    • 2018-06-04
    • 2023-02-04
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多