Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

perm_matrix

Permutation matrices


Description

Given a permutation, coerce to word form and return the corresponding permutation matrix

Usage

perm_matrix(p)
is.perm_matrix(M)
pm_to_perm(M)

Arguments

p

Permutation, coerced to word form, of length 1

M

Permutation matrix

Details

Given a permutation p of size s, function perm_matrix() returns a square matrix with s rows and s columns. Entries are either 0 or 1; each row and each column has exactly one entry of 1 and the rest zero.

Row and column names of the permutation matrix are integers; this makes the printed version more compact.

Function pm_to_perm() takes a permutation matrix and returns the equivalent permutation in word form.

Note

Given a word p with size s, the idiom for perm_matrix() boils down to

M <- diag(s)
    M[p,]

This is used explicitly in the representations vignette. There is another way:

M <- diag(s)
    M[cbind(seq_len(s),p)] <- 1
    M

which might be useful sometime.

Author(s)

Robin K. S. Hankin

See Also

Examples

perm_matrix(rperm(1,9))


p1 <- rperm(1,40)
M1 <- perm_matrix(p1)
p2 <- rperm(1,40)
M2 <- perm_matrix(p2)

stopifnot(is.perm_matrix(M1))

stopifnot(all(solve(M1) == perm_matrix(inverse(p1))))
stopifnot(all(M1 %*% M2 == perm_matrix(p1*p2)))


stopifnot(p1 == pm_to_perm(perm_matrix(p1)))

data("megaminx")
image(perm_matrix(permprod(megaminx)),asp=1,axes=FALSE)

permutations

The Symmetric Group: Permutations of a Finite Set

v1.0-9
GPL-2
Authors
Robin K. S. Hankin [aut, cre] (<https://orcid.org/0000-0001-5982-0415>), Paul Egeler [ctb] (<https://orcid.org/0000-0001-6948-9498>)
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.