perms

Todas as permutações dos elementos de um vetor.

Categoria: Mathematics > Elementary Math

Sintaxe

P = perms(v)

Retorna todas as ordenações dos elementos de v, uma por linha.

Descrição

As linhas saem em ordem lexicográfica reversa das posições: a primeira linha é v invertido e a última é o próprio v. O número de linhas cresce como n!, então perms(1:10) já tem 3.628.800 linhas e perms(1:12) é grande demais para a memória.

Como valores repetidos contam como diferentes, perms([1 1 2]) tem 6 linhas com duplicatas; aplique unique(..., 'rows') para removê-las.

Argumentos de entrada

v
Vetor de números, caracteres ou outros valores. Valores repetidos são tratados como distintos.

Argumentos de saída

P
Matriz com factorial(numel(v)) linhas e numel(v) colunas, da mesma classe de v. Um vetor char dá uma matriz char.

Exemplo

Números e caracteres

perms([1 2 3])
perms('abc')
Saída
ans = 6×3

     3     2     1
     3     1     2
     2     3     1
     2     1     3
     1     3     2
     1     2     3
ans = 6×3 char array

    'cba'
    'cab'
    'bca'
    'bac'
    'acb'
    'abc'

Veja também

nchoosek factorial randperm unique sortrows