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


R dtCMatrix-class 三角形(壓縮)稀疏列矩陣


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

說明

"dtCMatrix" 類是壓縮的column-oriented 格式的三角形稀疏矩陣類。在此實現中,列中的非零元素被排序為遞增的行順序。

"dtTMatrix" 類是三元組格式的三角形稀疏矩陣類。

類中的對象

對象可以通過 new("dtCMatrix", ...) 形式的調用或 new("dtTMatrix", ...) 形式的調用來創建,但更常見的是通過 Matrix() 或強製(例如 as(x, "triangularMatrix") )自動創建。

插槽

uplo

"character" 的對象。對於上三角,必須是"U",對於下三角,必須是"L"。

diag

"character" 的對象。必須是 "U" ,單位為三角形(對角線全為 1),或 "N" ;請參閱triangularMatrix

p

(僅存在於 "dtCMatrix" 中:) 用於提供指針的 integer 向量,每一列一個,請參閱 CsparseMatrix 中的詳細說明。

i

"integer" 的對象,長度為 nnzero(非零元素的數量)。這些是矩陣中每個非零元素的行號。

j

"integer" 的對象,長度為 nnzero(非零元素的數量)。這些是矩陣中每個非零元素的列號。 (僅存在於 dtTMatrix 類中。)

x

"numeric" 類的對象 - 矩陣的非零元素。

DimDimnames

尺寸(長度為 2 "integer" )和相應的名稱(或 NULL ),繼承自 Matrix ,請參閱此處。

擴展

直接類 "dgCMatrix" 。直接類 "triangularMatrix" 。類 "dMatrix""sparseMatrix" 以及更多類 "dgCMatrix" 等,請參閱示例。

方法

解決

signature(a = "dtCMatrix", b = "....") :稀疏三角求解(又名“backsolve” 或“forwardsolve”),請參閱solve-methods

t

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

t

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

例子


showClass("dtCMatrix")
showClass("dtTMatrix")
t1 <- new("dtTMatrix", x= c(3,7), i= 0:1, j=3:2, Dim= as.integer(c(4,4)))
t1
## from  0-diagonal to unit-diagonal {low-level step}:
tu <- t1 ; tu@diag <- "U"
tu
(cu <- as(tu, "CsparseMatrix"))
str(cu)# only two entries in @i and @x
stopifnot(cu@i == 1:0,
          all(2 * symmpart(cu) == Diagonal(4) + forceSymmetric(cu)))

t1[1,2:3] <- -1:-2
diag(t1) <- 10*c(1:2,3:2)
t1 # still triangular
(it1 <- solve(t1))
t1. <- solve(it1)
all(abs(t1 - t1.) < 10 * .Machine$double.eps)

## 2nd example
U5 <- new("dtCMatrix", i= c(1L, 0:3), p=c(0L,0L,0:2, 5L), Dim = c(5L, 5L),
          x = rep(1, 5), diag = "U")
U5
(iu <- solve(U5)) # contains one '0'
validObject(iu2 <- solve(U5, Diagonal(5)))# failed in earlier versions

I5 <- iu  %*% U5 # should equal the identity matrix
i5 <- iu2 %*% U5
m53 <- matrix(1:15, 5,3, dimnames=list(NULL,letters[1:3]))
asDiag <- function(M) as(drop0(M), "diagonalMatrix")
stopifnot(
   all.equal(Diagonal(5), asDiag(I5), tolerance=1e-14) ,
   all.equal(Diagonal(5), asDiag(i5), tolerance=1e-14) ,
   identical(list(NULL, dimnames(m53)[[2]]), dimnames(solve(U5, m53)))
)

也可以看看

dgCMatrixdgTMatrixdgeMatrixdtrMatrix

相關用法


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