0

我用类似的包做了一个稀疏qr分解"Matrix"R

a <- Matrix(runif(20), nrow = 5, sparse = T)
a[3:5,] <- 0 #now **a** is a 5X4 matrix
b <- qr.R(qr(a), complete = T) #but now **b** is a 7X4 matrix!

有谁知道为什么?请注意,如果我保持a密集,则不会出现错误(?)。

4

1 回答 1

1

我假设您没有看到警告,否则您会提到它,对吗?

警告消息:在 qr.R(qr(a), complete = T) 中:qr.R(< sparse >) 可能因排列而与 qr.R(< dense >) 不同

现在,如果您要问这些排列是什么意思,那就另当别论了……

help("sparseQR-class")页面可能包含有关此问题的更多信息:

但是,由于矩阵 Q 不是唯一定义的,qr.qy 和 qr.qty 的结果不一定与相应密集矩阵计算的结果相匹配。

也许它是一样的qr.R

最后,在同一个帮助页面上进一步向下:

qr.R --- signature(qr = "sparseQR"):计算 QR 分解的上三角 R 矩阵。请注意,由于可能与经典 qr.R() 结果的排列不匹配,这当前会发出警告,您可以通过将 options() 设置为“Matrix.quiet.qr.R”或(更一般的)“Matrix .quiet” 为 TRUE。

于 2012-08-09T03:42:43.640 回答