pMatrix-class {Matrix}R Documentation

Permutation matrices

Description

The "pMatrix" class is the class of permutation matrices, stored as 1-based integer permutation vectors.

Objects from the Class

Objects can be created by calls of the form new("pMatrix", ...) or by coercion from an integer permutation vector, see below.

Slots

perm:
An integer, 1-based permutation vector, i.e. an integer vector of length Dim[1] whose elements form a permutation of 1:Dim[1].
Dim:
Object of class "integer". The dimensions of the matrix which must be a two-element vector of equal, non-negative integers.
Dimnames:
list of length two; each component containing NULL or a character vector length equal the corresponding Dim element.

Extends

Class "Matrix", directly.

Methods

%*%
signature(x = "matrix", y = "pMatrix") and other signatures (use showMethods("%*%", class="pMatrix")): ...
coerce
signature(from = "integer", to = "pMatrix"): This is enables typical "pmatrix" construction, given a permutation vector of 1:n, see the first example.
coerce
signature(from = "pMatrix", to = "matrix"): ...
solve
signature(a = "pMatrix", b = "missing"): return the inverse permutation matrix.
t
signature(x = "pMatrix"): return the transpose of the permuation matrix (which is also the inverse of the permutation matrix).

Examples

(pm1 <- as(as.integer(c(2,3,1)), "pMatrix"))
t(pm1) # is the same as
solve(pm1)
pm1 %*% t(pm1) # check that the transpose is the inverse
stopifnot(identical(diag(3), as(pm1 %*% t(pm1), "matrix")))
(mm <- round(array(rnorm(3 * 3), c(3, 3)), 2))
mm %*% pm1
pm1 %*% mm
try(as(as.integer(c(3,3,1)), "pMatrix"))# Error: not a permutation

[Package Matrix version 0.95-5 Index]