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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
