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"
類的對象 - 矩陣的非零元素。 Dim
、Dimnames
:-
尺寸(長度為 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)))
)
也可以看看
相關用法
- R dtrMatrix-class 三角形稠密數值矩陣
- R dtpMatrix-class 填充三角密集矩陣 - “dtpMatrix”
- R dtRMatrix-class 三角形稀疏壓縮行矩陣
- R dgCMatrix-class 壓縮、稀疏、麵向列的數值矩陣
- R diagonalMatrix-class 對角矩陣的“diagonalMatrix”類
- R dsRMatrix-class 對稱稀疏壓縮行矩陣
- R dsCMatrix-class 數值對稱稀疏(列壓縮)矩陣
- R diagU2N 將三角矩陣從單位三角形變換到一般三角形並返回
- R dgTMatrix-class 三元組形式的稀疏矩陣
- R dimScale 縮放矩陣的行和列
- R ddiMatrix-class 對角數值矩陣的“ddiMatrix”類
- R dpoMatrix-class 正半定稠密(壓縮|非壓縮)數值矩陣
- R dmperm Dulmage-Mendelsohn 排列/分解
- R drop0 從稀疏矩陣中刪除非結構零
- R denseMatrix-class 所有密集矩陣的虛擬類“denseMatrix”
- R ddenseMatrix-class 數值密集矩陣的虛擬類“ddenseMatrix”
- R dsyMatrix-class 對稱密集(壓縮或非壓縮)數值矩陣
- R dsparseMatrix-class 數值稀疏矩陣的虛擬類“dsparseMatrix”
- R dMatrix-class (虛擬)“雙”矩陣的“dMatrix”類
- R facmul-methods 乘以矩陣因式分解的因數
- R solve-methods 函數求解矩陣包中的方法
- R updown-methods 更新和降級稀疏 Cholesky 分解
- R bdiag 構建分塊對角矩陣
- R printSpMatrix 靈活格式化和打印稀疏矩陣
- R symmetricMatrix-class 包矩陣中對稱矩陣的虛擬類
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Triangular, (compressed) sparse column matrices。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。