當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R drop0 從稀疏矩陣中刪除非結構零


R語言 drop0 位於 Matrix 包(package)。

說明

從稀疏矩陣中刪除 “non-structural” 零(即顯式存儲在內存中的零)並返回結果。

用法

drop0(x, tol = 0, is.Csparse = NA, give.Csparse = TRUE)

參數

x

Matrix ,通常繼承自虛擬類 sparseMatrixdenseMatrix 和傳統向量和矩陣被強製為 CsparseMatrix ,並自動刪除零,因此傳遞此類 x 的用戶應考慮使用 as(x, "CsparseMatrix") 代替,特別是在 tol = 0 情況下。

tol

非負數。如果x 為數字,則刪除絕對值小於或等於tol 的條目。

is.Csparse

僅當 give.CsparseTRUE 時才使用的邏輯,指示 x 是否已從虛擬類 CsparseMatrix 繼承,在這種情況下,不會嘗試強製轉換,從而允許一些(通常較小的)加速。

give.Csparse

指示結果是否必須從虛擬類 CsparseMatrix 繼承的邏輯。如果 FALSEx 繼承自 RsparseMatrixTsparseMatrixindMatrix ,則結果保留 x 的類。默認值為TRUE,僅用於向後兼容。

sparseMatrix ,從 x 中刪除非結構零的結果,可能是在強製轉換之後。

注意

drop0 有時與 zapsmall 一起調用,例如,在處理稀疏矩陣乘積時;請參閱示例。

例子

(m <- sparseMatrix(i = 1:8, j = 2:9, x = c(0:2, 3:-1),
                   dims = c(10L, 20L)))
drop0(m)

## A larger example:
t5 <- new("dtCMatrix", Dim = c(5L, 5L), uplo = "L",
          x = c(10, 1, 3, 10, 1, 10, 1, 10, 10),
          i = c(0L,2L,4L, 1L, 3L,2L,4L, 3L, 4L),
          p = c(0L, 3L, 5L, 7:9))
TT <- kronecker(t5, kronecker(kronecker(t5, t5), t5))
IT <- solve(TT)
I. <- TT %*% IT ;  nnzero(I.) # 697 ( == 625 + 72 )
I.0 <- drop0(zapsmall(I.))
## which actually can be more efficiently achieved by
I.. <- drop0(I., tol = 1e-15)
stopifnot(all(I.0 == Diagonal(625)), nnzero(I..) == 625)

也可以看看

函數 sparseMatrix ,用於構造繼承自虛擬類 sparseMatrix 的對象; nnzero

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Drop Non-Structural Zeros from a Sparse Matrix。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。