flipdim
inverse l'ordre des (blocs de) lignes, colonnes, pages.. d'un tableau.
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, ou tableau de cells.
yprend la taille dex.- dim
entier positif : n° de la dimension / direction de
xselon laquelle l'ordre des éléments dexdoit ê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 x.
flipdim(x, 2) inverse l'ordre des
colonnes de x.
flipdim(x, 3) inverse l'ordre des
pages de 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); d(d==0) = 1; 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]
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
- circshift — circularly shifts elements or subarrays of an array (regular, of structures, cells, custom)
- fftshift — rearranges the fft output, moving the zero frequency to the center of the spectrum
- ifftshift — inverse de fftshift
- colon — Générateur de séries. Adresse tous les éléments d'une liste ou d'un tableau
History
| Version | Description |
| 5.5.0 |
|
| Report an issue | ||
| << circshift | Matrice - façonnage | matrix >> |