Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
6.0.0 - Français

Change language to:
English - 日本語 - Português - Русский

Please note that the recommended version of Scilab is 2024.0.0. This page might be outdated.
See the recommended documentation of this function

Aide de Scilab >> Fonctions Elémentaires > Matrice - façonnage > flipdim

flipdim

inverse l'ordre des (blocs de) lignes, colonnes, pages.. d'une matrice ou hypermatrice

Séquence d'appel

y = flipdim(x, dim)
y = flipdim(x, dim, blockSize)

Paramètres

x, y

scalaires, vecteurs, matrices, ou hypermatrices de n'importe quel type de données régulier. y prend la taille de x.

dim

entier positif : n° de la dimension / direction de x selon laquelle l'ordre des éléments de x doit être inversé.

blockSize

entier positif, sous-multiple de size(x,dim) : taille des blocs dont l'ordre doit être inversé. Vaut 1 par défaut.

Description

flipdim(x, 1) inverse l'ordre des lignes de la matrice ou hypermatrice x.

flipdim(x, 2) inverse l'ordre des colonnes de x.

flipdim(x, 3) inverse l'ordre des pages de l'hypermatrice x. etc.

Le paramètre optionnel blockSize permet d'inverser l'ordre des size(x,1)/blockSize blocs de blockSize lignes de x (dim=1), ou des size(x,2)/blockSize blocs de blockSize colonnes (dim=2), etc (dim>2). À l'intérieur de chaque bloc, l'ordre des éléments (lignes, colonnes, etc) n'est pas modifié.

Exemples

// Exemple 1 : selon la première dimension
x = [1 2 3 4; 5 6 7 8]
dim = 1
y = flipdim(x, dim)

// Exemple 2 : selon la deuxième dimension
dim = 2
y = flipdim(x, dim)

// Exemple 3 : selon la troisième dimension
x = matrix(1:24, [3 2 4])
dim = 3
y = flipdim(x, dim)

// Exemple 4 : premier exemple, mais avec des complexes
x = [1+%i 2*%i 3 4; 5 6-%i 7 8*%pi*%i]
dim = 1
y = flipdim(x, dim)

// Entiers :
x = int16(grand(4, 3, 2, "uin", -9, 9))
y = flipdim(x, 1)

// Booléens :
x = (grand(3, 4, "uin", -9, 9) > 0)
y = flipdim(x, 2)

// Textes :
x = matrix(strsplit("a":"x", 1:23), 4, 6);
x = x+x
flipdim(x, 2)

// Polynômes :
x = inv_coeff(grand(3, 9, "uin", 0, 3), 2)
flipdim(x, 1)

// Rationals :
n = inv_coeff(grand(3, 9, "uin", 0 ,3), 2);
d = inv_coeff(grand(3, 9, "uin", 0, 3), 2);
r = n./d
flipdim(r, 2)

Exemples utilisant blockSize :

X = [0 1 2 3 4 5 6 7 8 9 10 11];
flipdim(X, 2, 2) // => [10 11   8 9   6 7   4 5   2 3   0 1] // Taille du bloc = 2.
flipdim(X, 2, 3) // => [9 10 11   6 7 8   3 4 5   0 1 2]
flipdim(X, 2, 4) // => [8 9 10 11   4 5 6 7   0 1 2 3]
flipdim(X, 2, 6) // => [6 7 8 9 10 11   0 1 2 3 4 5]

// Erreur si la valeur de blockSize n'est pas sous-multiple de la dimension ciblée de x.
y = flipdim(x, 2, 5); // size(X) = [1 12] et blockSize=5 ne divise pas 12.

Exemple de résultats :

--> x
 x  =
 -5 -2  0  9
  0 -7 -6  9
 -1 -8 -7  8

--> flipdim(x, 1)
 ans  =
 -1 -8 -7  8
  0 -7 -6  9
 -5 -2  0  9

--> flipdim(x, 2)
 ans  =
  9  0 -2 -5
  9 -6 -7  0
  8 -7 -8 -1

--> x
 x  =
(:,:,1)
  9  4 -3
 -4 -8 -3

(:,:,2)
  5  8  9
  4  4  9

--> flipdim(x, 3)
 ans  =
(:,:,1)
  5  8  9
  4  4  9

(:,:,2)
  9  4 -3
 -4 -8 -3

--> x
 x  =
 -2  3 -5  9 -4 -8
  2  8  4 -9  6 -6
 -9  8  3  4 -3  4

--> flipdim(x, 2, 2)
 ans  =
 -4 -8 -5  9 -2  3
  6 -6  4 -9  2  8
 -3  4  3  4 -9  8

--> flipdim(x, 2, 3)
 ans  =
  9 -4 -8 -2  3 -5
 -9  6 -6  2  8  4
  4 -3  4 -9  8  3

Voir aussi

  • fftshift — rearranges the fft output, moving the zero frequency to the center of the spectrum
  • ifftshift — inverse de fftshift
  • colon — (:) opérateur "deux points"

History

VersionDescription
5.5.0
  • Extension aux matrices et hypermatrices de booléens, entiers encodés, textes, polynômes, fractions rationnelles, identifiants graphiques, etc.
  • Nouveau paramètre optionnel blockSize pour réordonner x par blocs.
Report an issue
<< Matrice - façonnage Matrice - façonnage matrix >>

Copyright (c) 2022-2023 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Feb 14 15:06:32 CET 2017