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


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。