1 <?xml version="1.0" encoding="UTF-8"?>
3 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4 * Copyright (C) 2008 - INRIA - Farid BELAHCENE
5 * Copyright (C) 2013, 2016 - Samuel GOUGEON : 5.5.0 extensions, page overhauled
7 * Copyright (C) 2012 - 2016 - Scilab Enterprises
9 * This file is hereby licensed under the terms of the GNU GPL v2.0,
10 * pursuant to article 5.3.4 of the CeCILL v.2.1.
11 * This file was originally licensed under the terms of the CeCILL v2.1,
12 * and continues to be available under such terms.
13 * For more information, see the COPYING file which you should have received
14 * along with this program.
17 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
18 xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml"
19 xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
20 xmlns:scilab="http://www.scilab.org" xml:id="flipdim" xml:lang="fr">
22 <refname>flipdim</refname>
24 inverse l'ordre des (blocs de) lignes, colonnes, pages.. d'une matrice ou hypermatrice
28 <title>Séquence d'appel</title>
31 y = flipdim(x, dim, blockSize)
34 <refsection role="parameters">
35 <title>Paramètres</title>
41 scalaires, vecteurs, matrices, ou hypermatrices de n'importe quel type de données régulier.
42 <varname>y</varname> prend la taille de <varname>x</varname>.
50 entier positif : n° de la dimension / direction de <literal>x</literal>
51 selon laquelle l'ordre des éléments de <varname>x</varname> doit être inversé.
56 <term>blockSize</term>
59 entier positif, sous-multiple de <literal>size(x,dim)</literal> :
60 taille des blocs dont l'ordre doit être inversé. Vaut 1 par défaut.
66 <refsection role="description">
67 <title>Description</title>
69 <literal>flipdim(x, 1)</literal> inverse l'ordre des
70 <emphasis role="italic">lignes</emphasis> de la matrice ou hypermatrice
74 <literal>flipdim(x, 2)</literal> inverse l'ordre des
75 <emphasis role="italic">colonnes</emphasis> de <varname>x</varname>.
78 <literal>flipdim(x, 3)</literal> inverse l'ordre des
79 <emphasis role="italic">pages</emphasis> de l'hypermatrice
80 <varname>x</varname>. etc.
83 Le paramètre optionnel <literal>blockSize</literal> permet d'inverser l'ordre des
84 <literal>size(x,1)/blockSize</literal> blocs de <varname>blockSize</varname>
85 lignes de <varname>x</varname> (<literal>dim=1</literal>), ou des
86 <literal>size(x,2)/blockSize</literal> blocs de <varname>blockSize</varname>
87 colonnes (<literal>dim=2</literal>), etc (<literal>dim>2</literal>).
88 À l'intérieur de chaque bloc, l'ordre des éléments (lignes, colonnes, etc) n'est pas modifié.
91 <refsection role="examples">
92 <title>Exemples</title>
93 <programlisting role="example"><![CDATA[
94 // Exemple 1 : selon la première dimension
95 x = [1 2 3 4; 5 6 7 8]
99 // Exemple 2 : selon la deuxième dimension
103 // Exemple 3 : selon la troisième dimension
104 x = matrix(1:24, [3 2 4])
108 // Exemple 4 : premier exemple, mais avec des complexes
109 x = [1+%i 2*%i 3 4; 5 6-%i 7 8*%pi*%i]
114 x = int16(grand(4, 3, 2, "uin", -9, 9))
118 x = (grand(3, 4, "uin", -9, 9) > 0)
122 x = matrix(strsplit("a":"x", 1:23), 4, 6);
127 x = inv_coeff(grand(3, 9, "uin", 0, 3), 2)
131 n = inv_coeff(grand(3, 9, "uin", 0 ,3), 2);
132 d = inv_coeff(grand(3, 9, "uin", 0, 3), 2);
137 Exemples utilisant <literal>blockSize</literal> :
139 <programlisting role="example"><![CDATA[
140 X = [0 1 2 3 4 5 6 7 8 9 10 11];
141 flipdim(X, 2, 2) // => [10 11 8 9 6 7 4 5 2 3 0 1] // Taille du bloc = 2.
142 flipdim(X, 2, 3) // => [9 10 11 6 7 8 3 4 5 0 1 2]
143 flipdim(X, 2, 4) // => [8 9 10 11 4 5 6 7 0 1 2 3]
144 flipdim(X, 2, 6) // => [6 7 8 9 10 11 0 1 2 3 4 5]
146 // Erreur si la valeur de blockSize n'est pas sous-multiple de la dimension ciblée de x.
147 y = flipdim(x, 2, 5); // size(X) = [1 12] et blockSize=5 ne divise pas 12.
149 <para>Exemple de résultats :</para>
212 <refsection role="see also">
213 <title>Voir aussi</title>
214 <simplelist type="inline">
216 <link linkend="fftshift">fftshift</link>
219 <link linkend="ifftshift">ifftshift</link>
222 <link linkend="colon">colon</link>
226 <refsection role="history">
227 <title>History</title>
230 <revnumber>5.5.0</revnumber>
234 Extension aux matrices et hypermatrices de booléens, entiers encodés, textes,
235 polynômes, fractions rationnelles, identifiants graphiques, etc.
238 Nouveau paramètre optionnel <literal>blockSize</literal> pour réordonner
239 <literal>x</literal> par blocs.