permute permute les dimensions d'un tableau à N dimensions

## Syntaxe

    y = permute(x, dims)

## Arguments

x

  Un tableau ayant un nombre quelconque N de dimensions (0, 1, 2, ou N>2), de type de données quelconque : booléens, entiers encodés, nombres décimaux réels ou complexes, polynômes, fractions rationnelles, tableau de structures, tableau de cells.

dims

  toute permutation des nombres entiers 1:N où N>=Nmin est le nombre de dimensions du tableau souhaité, a minima `nmin = ndims(x)`.

  La dimension numéro `#i` dans `y` était la dimension numéro `#dims(i)` dans `x`.

y

  Un tableau ayant le même contenu que `x`, avec des tailles identiques à celles de `x` mais permutées.

## Description

`permute(..)` permute les dimensions du tableau selon les correspondances données dans le vecteur `dims`.

Dans le tableau résultant `y`, toute dimension d'ordre majeur réduite à une taille de 1 (singleton) est automatiquement ignorée (réduction).
`permute()` est une généralisation à un nombre de dimensions N quelconque des opérateurs de transposition `.'` ou `'`. Elle est principalement utile pour manipuler les dimensions des hypermatrices. Pour simplement transposer une matrice (permuter ses lignes en colonnes et vice-versa), on utilisera de préférence `.'` ou `'`

## Exemples

    // Exemple 1 : Une matrice devient une hypermatrice avec un coté de taille == 1
    //             (ici le nombre de lignes (dans chaque page)
    x = [1 2 3; 4 5 6]
    y = permute(x,[3 1 2])

    --> x = [1 2 3; 4 5 6]
     x  =
       1.   2.   3.
       4.   5.   6.

    --> y = permute(x,[3 1 2])
     y  =
    (:,:,1)
       1.   4.
    (:,:,2)
       2.   5.
    (:,:,3)
       3.   6.

    // Exemple 2 : avec des entiers encodés
    x = int8(matrix(1:24, [3 4 2]))
    y = permute(x, [2 3 1])

    --> x = int8(matrix(1:24, [3 4 2]))
     x  =
    (:,:,1)
      1  4  7  10
      2  5  8  11
      3  6  9  12
    (:,:,2)
      13  16  19  22
      14  17  20  23
      15  18  21  24

    --> y = permute(x, [2 3 1])
     y  =
    (:,:,1)
      1  13
      4  16
      7  19
     10  22
    (:,:,2)
      2  14
      5  17
      8  20
     11  23
    (:,:,3)
      3  15
      6  18
      9  21
     12  24

    // Exemple 3 :
    x = matrix(1:8, [2 1 4])
    y = permute(x, [3 1 2]);
    // La dimension 1 était la 3ème : taille = 4 = nouveau nombre de lignes
    // La dimension 2 était la 1ère : taille = 2 = nouveau nombre de colonnes
    // La dimension 3 était la 2ème : taille = 1 = nouveau nombre de pages
    y

## Voir aussi

- pertrans
- quote
- ndims
- squeeze

## Historique

6.0 Extension aux tableaux de fractions rationnelles