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


R band-methods 提取矩阵的带


R语言 band-methods 位于 Matrix 包(package)。

说明

返回通过将对角线下方 ( triu )、对角线上方 ( tril ) 或一般带外 ( band ) 之外的元素设置为零而获得的矩阵。

用法

band(x, k1, k2, ...)
triu(x, k = 0L, ...)
tril(x, k = 0L, ...)

参数

x

类似矩阵的对象

k , k1 , k2

指定未设置为零的对角线的整数。这些是相对于主对角线(即 k=0 )进行解释的。 k 的正值和负值分别表示主对角线上方和下方的对角线。

...

可选参数传递方法(当前由包 Matrix 未使用)

细节

triu(x, k) 相当于 band(x, k, dim(x)[2]) 。类似地, tril(x, k) 相当于 band(x, -dim(x)[1], k)

合适矩阵类的对象,在适当的情况下继承自triangularMatrix。当且仅当 x 继承时,它才继承自 sparseMatrix

方法

x = "CsparseMatrix"

用于压缩、稀疏、column-oriented 矩阵的方法。

x = "RsparseMatrix"

用于压缩、稀疏、row-oriented 矩阵的方法。

x = "TsparseMatrix"

三元组格式的稀疏矩阵的方法。

x = "diagonalMatrix"

对角矩阵的方法。

x = "denseMatrix"

用于压缩或非压缩格式的密集矩阵的方法。

x = "matrix"

隐式类 matrix 的传统矩阵的方法。

例子


## A random sparse matrix :
set.seed(7)
m <- matrix(0, 5, 5)
m[sample(length(m), size = 14)] <- rep(1:9, length=14)
(mm <- as(m, "CsparseMatrix"))

tril(mm)        # lower triangle
tril(mm, -1)    # strict lower triangle
triu(mm,  1)    # strict upper triangle
band(mm, -1, 2) # general band
(m5 <- Matrix(rnorm(25), ncol = 5))
tril(m5)        # lower triangle
tril(m5, -1)    # strict lower triangle
triu(m5, 1)     # strict upper triangle
band(m5, -1, 2) # general band
(m65 <- Matrix(rnorm(30), ncol = 5))  # not square
triu(m65)       # result not "dtrMatrix" unless square
(sm5 <- crossprod(m65)) # symmetric
   band(sm5, -1, 1)# "dsyMatrix": symmetric band preserves symmetry property
as(band(sm5, -1, 1), "sparseMatrix")# often preferable
(sm <- round(crossprod(triu(mm/2)))) # sparse symmetric ("dsC*")
band(sm, -1,1) # remains "dsC", *however*
band(sm, -2,1) # -> "dgC"




也可以看看

bandSparse 用于直接从非零对角线构造带状稀疏矩阵。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Extract bands of a matrix。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。