Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Português - 日本語 - Русский
Aide de Scilab >> Fonctions Elémentaires > Matrice - façonnage > permute

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 — Transposition selon la seconde diagonale
  • quote — opérateur de transposition, délimiteur de chaîne de caractères
  • ndims — number of dimensions of an array
  • squeeze — squeeze

Historique

VersionDescription
6.0 Extension aux tableaux de fractions rationnelles
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Feb 12 19:15:26 CET 2018