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


R dgTMatrix-class 三元組形式的稀疏矩陣


R語言 dgTMatrix-class 位於 Matrix 包(package)。

說明

"dgTMatrix" 類是存儲為(可能冗餘)三元組的稀疏矩陣類。內部表示根本不是唯一的,與類 dgCMatrix 的表示相反。

類中的對象

可以通過 new("dgTMatrix", ...) 形式的調用來創建對象,但更常見的是通過 spMatrix()sparseMatrix(*, repr = "T") 來創建。

插槽

i

integer 以 0 為基數的非零條目的行索引,即必須位於 0:(nrow(.)-1) 中。

j

integer 非零條目的列索引。必須與槽 i 的長度相同,並且也從 0 開始,即在 0:(ncol(.)-1) 中。

x

numeric 向量 - 位置 (i,j) 處的(非零)條目。必須與插槽 i 的長度相同。如果索引對出現多次,則將槽 x 的相應值相加以形成矩陣的元素。

Dim

"integer" 類的對象,長度為 2 - 矩陣的維度。

方法

+

signature(e1 = "dgTMatrix", e2 = "dgTMatrix")

圖片

signature(x = "dgTMatrix") :使用 levelplot 函數繪製 x 的圖像

t

signature(x = "dgTMatrix") :返回x 的轉置

注意

三元組矩陣是構造稀疏矩陣的一種便捷形式,之後可以將它們強製轉換為 dgCMatrix 對象。

請注意,"dgTMatrix"(和其他"TsparseMatrix"類)的new(.)spMatrix構造函數都隱式添加屬於相同 對的

然而,這意味著矩陣通常可以以多種可能的 "TsparseMatrix" 表示形式存儲。使用uniqTsparse() 以確保此類矩陣的內部表示的唯一性。

例子


m <- Matrix(0+1:28, nrow = 4)
m[-3,c(2,4:5,7)] <- m[ 3, 1:4] <- m[1:3, 6] <- 0
(mT <- as(m, "TsparseMatrix"))
str(mT)
mT[1,]
mT[4, drop = FALSE]
stopifnot(identical(mT[lower.tri(mT)],
                    m [lower.tri(m) ]))
mT[lower.tri(mT,diag=TRUE)] <- 0
mT

## Triplet representation with repeated (i,j) entries
## *adds* the corresponding x's:
T2 <- new("dgTMatrix",
          i = as.integer(c(1,1,0,3,3)),
          j = as.integer(c(2,2,4,0,0)), x=10*1:5, Dim=4:5)
str(T2) # contains (i,j,x) slots exactly as above, but
T2 ## has only three non-zero entries, as for repeated (i,j)'s,
   ## the corresponding x's are "implicitly" added
stopifnot(nnzero(T2) == 3)

也可以看看

dgCMatrix 或超類 dsparseMatrixTsparseMatrixuniqTsparse

相關用法


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