nsparseMatrix-classes
位於 Matrix
包(package)。 說明
nsparseMatrix
類是稀疏 “pattern” 矩陣的虛擬類,即概念上具有 TRUE
/FALSE
條目的二元矩陣。僅存儲 TRUE
元素的位置。
這些可以以 “triplet” 形式存儲( TsparseMatrix
,子類 ngTMatrix
、 nsTMatrix
和 ntTMatrix
,它們實際上包含對,而不是三元組)或壓縮的 column-oriented 形式(類 CsparseMatrix
,子類) ngCMatrix
、nsCMatrix
和 ntCMatrix
) or-rarely-in 壓縮 row-oriented 形式(類 RsparseMatrix
、子類 ngRMatrix
、nsRMatrix
和 ntRMatrix
) 。這些非虛擬類名稱中的第二個字母表示 g
enral、s
ymmetric 或 t
riangular。
類中的對象
可以通過調用 new("ngCMatrix",
...)
等形式來創建對象。更常見的是,通過將數字稀疏矩陣強製轉換為模式形式來創建對象,以用於涉及稀疏矩陣的算法的符號分析階段。此類算法通常涉及兩個階段:確定結果中非零位置的符號階段和計算實際結果的數字階段。在符號階段,僅對任何操作數中非零元素的位置感興趣,因此數值稀疏矩陣可以被視為稀疏模式矩陣。
插槽
uplo
:-
類
"character"
的對象。對於上三角,必須是"U",對於下三角,必須是"L"。存在於三角形和對稱類中,但不存在於普通類中。 diag
:-
類
"character"
的對象。對於單位三角形(對角線全為 1),必須是"U"
,對於非單位必須是"N"
。當diag
為"U"
時,不會顯式存儲隱式對角線元素。僅出現在三角班中。 p
:-
"integer"
類指針對象,每列(行)一個,指向列中元素的初始(從零開始)索引。僅以壓縮column-oriented 和壓縮row-oriented 形式存在。 i
:-
類
"integer"
的對象,長度為 nnzero(非零元素的數量)。這些是矩陣中每個 TRUE 元素的行號。所有其他元素均為 FALSE。僅以三元組和壓縮column-oriented 形式存在。 j
:-
類
"integer"
的對象,長度為 nnzero(非零元素的數量)。這些是矩陣中每個 TRUE 元素的列號。所有其他元素均為 FALSE。僅以三元組和壓縮row-oriented 形式存在。 Dim
:-
"integer"
類的對象 - 矩陣的維度。
方法
- 強製
-
signature(from = "dgCMatrix", to = "ngCMatrix")
以及許多類似的;通常你應該強製"nsparseMatrix"
(或"nMatrix"
)。請注意,對稀疏模式矩陣的強製會記錄所有潛在的非零條目,即顯式 (“non-structural”) 零被強製為TRUE
,而不是FALSE
,請參見示例。 - t
-
signature(x = "ngCMatrix")
:返回x
的轉置 - 哪一個
-
signature(x = "lsparseMatrix")
,語義上等同於base
函數which(x, arr.ind)
;有關詳細信息,請參閱lMatrix
類文檔。
例子
(m <- Matrix(c(0,0,2:0), 3,5, dimnames=list(LETTERS[1:3],NULL)))
## ``extract the nonzero-pattern of (m) into an nMatrix'':
nm <- as(m, "nsparseMatrix") ## -> will be a "ngCMatrix"
str(nm) # no 'x' slot
nnm <- !nm # no longer sparse
## consistency check:
stopifnot(xor(as( nm, "matrix"),
as(nnm, "matrix")))
## low-level way of adding "non-structural zeros" :
nnm <- as(nnm, "lsparseMatrix") # "lgCMatrix"
nnm@x[2:4] <- c(FALSE, NA, NA)
nnm
as(nnm, "nMatrix") # NAs *and* non-structural 0 |---> 'TRUE'
data(KNex, package = "Matrix")
nmm <- as(KNex $ mm, "nMatrix")
str(xlx <- crossprod(nmm))# "nsCMatrix"
stopifnot(isSymmetric(xlx))
image(xlx, main=paste("crossprod(nmm) : Sparse", class(xlx)))
也可以看看
相關用法
- R nsyMatrix-class 對稱密集非零模式矩陣
- R nearPD 最近正定矩陣
- R norm-methods 矩陣範數
- R ngeMatrix-class 一般密集非零模式矩陣的“ngeMatrix”類
- R ntrMatrix-class 三角密集邏輯矩陣
- R number-class 可能複數的“數”類
- R nnzero-methods 矩陣非零值的數量
- R ndenseMatrix-class 密集邏輯矩陣的虛擬類“ndenseMatrix”
- R nMatrix-class 非零模式矩陣的“nMatrix”類
- R dtrMatrix-class 三角形稠密數值矩陣
- R facmul-methods 乘以矩陣因式分解的因數
- R solve-methods 函數求解矩陣包中的方法
- R updown-methods 更新和降級稀疏 Cholesky 分解
- R bdiag 構建分塊對角矩陣
- R printSpMatrix 靈活格式化和打印稀疏矩陣
- R symmetricMatrix-class 包矩陣中對稱矩陣的虛擬類
- R all.equal-methods 函數 all.equal() 的矩陣封裝方法
- R boolmatmult-methods 布爾算術矩陣乘積:%&% 和方法
- R ltrMatrix-class 三角密集邏輯矩陣
- R Hilbert 生成希爾伯特矩陣
- R lsyMatrix-class 對稱密集邏輯矩陣
- R CHMfactor-class 稀疏 Cholesky 分解
- R symmpart-methods 矩陣的對稱部分和偏斜(對稱)部分
- R sparseMatrix 從非零項構建一般稀疏矩陣
- R dgCMatrix-class 壓縮、稀疏、麵向列的數值矩陣
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Sparse "pattern" Matrices。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。