当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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