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