mat2triplet function

Map Matrix to its Triplet Representation

Map Matrix to its Triplet Representation

From an 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)

Arguments

  • x: any object for which as(x, "TsparseMatrix")

    works; typically a matrix of one of the Matrix

    package matrices.

  • uniqT: logical indicating if the triplet representation should be unique in the sense of asUniqueT(byrow=FALSE).

Returns

A list, typically with three components, - i: vector of row indices for all non-zero entries of x

  • i: vector of columns indices for all non-zero entries of x

  • 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).

Note

The mat2triplet() utility was created to be a more efficient and more predictable substitute for summary(<sparseMatrix>). UseRs have wrongly expected the latter to return a data frame with columns i and j which however is wrong for a "diagonalMatrix".

See Also

The summary() method for "sparseMatrix", summary,sparseMatrix-method.

mat2triplet() is conceptually the inverse function of spMatrix and (one case of) sparseMatrix.

Examples

mat2triplet # simple definition 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))
  • Maintainer: Martin Maechler
  • License: GPL (>= 2) | file LICENCE
  • Last published: 2025-03-11