From an R object coercible to "'>TsparseMatrix"
,
typically a (sparse) matrix, produce its triplet representation which may
collapse to a “Duplet” in the case of binary aka pattern, such as
"'>nMatrix"
objects.
mat2triplet(x, uniqT = FALSE)
any R object for which as(x, "'>TsparseMatrix")
works; typically a matrix
of one of the Matrix
package matrices.
logical
indicating if the triplet
representation should be ‘unique’ in the sense of
uniqTsparse()
.
A list
, typically with three components,
vector of row indices for all non-zero entries of x
vector of columns indices for all non-zero entries of x
vector of all non-zero entries of x
; exists only
when as(x, "TsparseMatrix")
is not a
"'>nsparseMatrix"
.
Note that the order of the entries is determined by the coercion to "'>TsparseMatrix" and hence typically with increasing j (and increasing i within ties of j).
The summary()
method for "sparseMatrix"
,
summary,sparseMatrix-method
.
mat2triplet()
is conceptually the inverse function of
spMatrix
and (one case of) sparseMatrix
.
# NOT RUN {
<!-- % ../R/sparseMatrix.R -->
# }
# NOT RUN {
if(FALSE) ## The function is defined (don't redefine here!), simply as
mat2triplet <- function(x, uniqT = FALSE) {
T <- as(x, "TsparseMatrix")
if(uniqT && anyDuplicatedT(T)) T <- .uniqTsparse(T)
if(is(T, "nsparseMatrix"))
list(i = T@i + 1L, j = T@j + 1L)
else list(i = T@i + 1L, j = T@j + 1L, x = T@x)
}
i <- c(1,3:8); j <- c(2,9,6:10); x <- 7 * (1:7)
(Ax <- sparseMatrix(i, j, x = x)) ## 8 x 10 "dgCMatrix"
str(trA <- mat2triplet(Ax))
stopifnot(i == sort(trA$i), sort(j) == trA$j, x == sort(trA$x))
D <- Diagonal(x=4:2)
summary(D)
str(mat2triplet(D))
# }
Run the code above in your browser using DataLab