pack
位於 Matrix
包(package)。 說明
pack()
將密集對稱矩陣和密集三角矩陣從未壓縮格式(存儲完整矩陣)強製轉換為壓縮格式(僅存儲上下三角形之一)。 unpack()
執行反向強製轉換。這兩種格式由虛擬類 "packedMatrix"
和 "unpackedMatrix"
形式化。
用法
pack(x, ...)
## S4 method for signature 'dgeMatrix'
pack(x, symmetric = NA, upperTri = NA, ...)
## S4 method for signature 'lgeMatrix'
pack(x, symmetric = NA, upperTri = NA, ...)
## S4 method for signature 'ngeMatrix'
pack(x, symmetric = NA, upperTri = NA, ...)
## S4 method for signature 'matrix'
pack(x, symmetric = NA, upperTri = NA, ...)
unpack(x, ...)
參數
x |
稠密對稱或稠密三角矩陣。
|
symmetric |
邏輯(包括 |
upperTri |
(僅適用於三角形 |
... |
傳入或傳出其他方法的進一步參數。 |
細節
pack(x)
檢查矩陣 x
不是從虛擬類之一繼承 "symmetricMatrix"
"triangularMatrix"
的對稱性(通過 isSymmetric()
)。然後進行上三角和下三角(通過 isTriangular()
)以確定合適的強製。將 symmetric
和 upperTri
之一或兩者設置為 TRUE
或 FALSE
而不是 NA
允許跳過已知對稱或(上或下)三角形的大型矩陣的不相關測試。
用戶不應假設pack()
和unpack()
是逆運算。具體地,y <- unpack(pack(x))
可能無法再現identical()
意義上的"unpackedMatrix"
x
。請參閱示例。
值
- 對於
pack()
: -
"packedMatrix"
給出x
的壓縮表示。 - 對於
unpack()
: -
"unpackedMatrix"
給出x
的完整存儲表示。
例子
showMethods("pack")
(s <- crossprod(matrix(sample(15), 5,3))) # traditional symmetric matrix
(sp <- pack(s))
mt <- as.matrix(tt <- tril(s))
(pt <- pack(mt))
stopifnot(identical(pt, pack(tt)),
dim(s ) == dim(sp), all(s == sp),
dim(mt) == dim(pt), all(mt == pt), all(mt == tt))
showMethods("unpack")
(cp4 <- chol(Hilbert(4))) # is triangular
tp4 <- pack(cp4) # [t]riangular [p]acked
str(tp4)
(unpack(tp4))
stopifnot(identical(tp4, pack(unpack(tp4))))
z1 <- new("dsyMatrix", Dim = c(2L, 2L), x = as.double(1:4), uplo = "U")
z2 <- unpack(pack(z1))
stopifnot(!identical(z1, z2), # _not_ identical
all(z1 == z2)) # but mathematically equal
cbind(z1@x, z2@x) # (unused!) lower triangle is "lost" in translation
相關用法
- R packedMatrix-class 壓縮密集矩陣的虛擬類“packedMatrix”
- R printSpMatrix 靈活格式化和打印稀疏矩陣
- R pMatrix-class 排列矩陣
- R dtrMatrix-class 三角形稠密數值矩陣
- R facmul-methods 乘以矩陣因式分解的因數
- R solve-methods 函數求解矩陣包中的方法
- R updown-methods 更新和降級稀疏 Cholesky 分解
- R bdiag 構建分塊對角矩陣
- R symmetricMatrix-class 包矩陣中對稱矩陣的虛擬類
- R all.equal-methods 函數 all.equal() 的矩陣封裝方法
- R boolmatmult-methods 布爾算術矩陣乘積:%&% 和方法
- R ltrMatrix-class 三角密集邏輯矩陣
- R Hilbert 生成希爾伯特矩陣
- R nearPD 最近正定矩陣
- R lsyMatrix-class 對稱密集邏輯矩陣
- R CHMfactor-class 稀疏 Cholesky 分解
- R symmpart-methods 矩陣的對稱部分和偏斜(對稱)部分
- R sparseMatrix 從非零項構建一般稀疏矩陣
- R dgCMatrix-class 壓縮、稀疏、麵向列的數值矩陣
- R Cholesky-methods Cholesky 分解方法
- R Subassign-methods “[<-”的方法 - 分配給“矩陣”的子集
- R ldenseMatrix-class 密集邏輯矩陣的虛擬類“ldenseMatrix”
- R norm-methods 矩陣範數
- R ngeMatrix-class 一般密集非零模式矩陣的“ngeMatrix”類
- R CAex 阿爾伯斯的示例矩陣與“困難”特征分解
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Representation of Packed and Unpacked Dense Matrices。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。