2017-09-04 197 views
1

我發現函數(null或nullspace)在R中查找正則矩陣的空間,但找不到稀疏矩陣(sparseMatrix)的任何函數或包。計算稀疏矩陣的零空間

有誰知道如何做到這一點?

回答

2

如果你看看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] 
+0

嗨文森特。我用你的評論,這很好。雖然矩陣和它的轉置是分解的,但在稀疏情況下,當行數小於列數時,它不分解。作爲矩陣(A,sparse = TRUE)和qr.Q(qr(A),complete = TRUE),可以使用以下公式來計算矩陣A和矩陣B的相關係數矩陣:A <矩陣(1:6,nc = 2,nr = 3)和 。和qr.Q(qr(A),qr.Q(qr(As),complete = TRUE)和qr.Q(qr(t(A)),complete = TRUE) ),complete = TRUE)不起作用 .local(x,...)中的錯誤:必須有#{rows}> =#{columns}。非常感謝。最好的 – Mahin

+0

我得到相同的錯誤信息。我不知道爲什麼它在密集矩陣上工作,但對於稀疏矩陣失敗... –

+0

非常感謝您的關注。 – Mahin