Transformer une permutation en une matrice : permu2mat

### 6.11.7 Transformer une permutation en une matrice : permu2mat

permu2mat a comme argument une permutation p de longueur n.
permu2mat renvoie la matrice obtenue en permutant, selon la permutation p, les lignes de la matrice identité d’ordre n.
On tape :

permu2mat([2,0,1])

On obtient :

[[0,0,1],[1,0,0],[0,1,0]]

Remarques
Pour faire une permutation sur les composantes d’un vecteur, par exemple faire agir la permutation [2,0,1] sur [10,20,30], on tape :
P:=permu2mat([2,0,1]);V:=[10,20,30];P*V
ou bien, on tape p:=[2,0,1];V:=[10,20,30];V[p[j]]$(j=0..2):
et on obtient [30,10,20].
Pour faire une permutation sur les lignes d’une matrice carrée, par exemple faire agir la permutation [2,0,1] sur les lignes de [[1,2,3],[4,5,6],[7,8,9]], on tape :
P:=permu2mat([2,0,1]);A:=[[1,2,3],[4,5,6],[7,8,9]];P*A et on obtient [[4,5,6],[7,8,9],[1,2,3]].
Pour faire une permutation sur les colonnes d’une matrice carrée, par exemple faire agir la permutation [2,0,1] sur les colonnes de [[1,2,3],[4,5,6],[7,8,9]], on tape :
P:=permu2mat([2,0,1]);A:=[[1,2,3],[4,5,6],[7,8,9]];A*tran(P)) et on obtient [[3,1,2],[6,4,5],[9,7,8]].