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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。