[doc] misc fix & improvements
[scilab.git] / scilab / modules / elementary_functions / help / fr_FR / insertion.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
3           xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
4           xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
5           xml:lang="fr" xml:id="insertion">
6     <refnamediv>
7         <refname>insertion</refname>
8         <refpurpose>insertion/modification dans une
9             variable
10         </refpurpose>
11     </refnamediv>
12     <refnamediv xml:id="affectation">
13         <refname>affectation</refname>
14         <refpurpose>affectation partielle d'une variable  </refpurpose>
15     </refnamediv>
16     <refsynopsisdiv>
17         <title>Séquence d'appel</title>
18         <synopsis>x(i,j)=a
19             x(i)=a
20             l(i)=a
21             l(k1)...(kn)(i)=a ou l(list(k1,...,kn,i))=a
22             l(k1)...(kn)(i,j)=a ou l(list(k1,...,kn,list(i,j))=a
23         </synopsis>
24     </refsynopsisdiv>
25     <refsection>
26         <title>Paramètres</title>
27         <variablelist>
28             <varlistentry>
29                 <term>x  </term>
30                 <listitem>
31                     <para>matrice de tout type
32                     </para>
33                 </listitem>
34             </varlistentry>
35             <varlistentry>
36                 <term>l  </term>
37                 <listitem>
38                     <para>liste
39                     </para>
40                 </listitem>
41             </varlistentry>
42             <varlistentry>
43                 <term>i,j  </term>
44                 <listitem>
45                     <para>indices
46                     </para>
47                 </listitem>
48             </varlistentry>
49             <varlistentry>
50                 <term>k1,...kn  </term>
51                 <listitem>
52                     <para>indices à valeurs entières
53                     </para>
54                 </listitem>
55             </varlistentry>
56             <varlistentry>
57                 <term>a  </term>
58                 <listitem>
59                     <para>nouvelles valeurs des termes
60                     </para>
61                 </listitem>
62             </varlistentry>
63         </variablelist>
64     </refsection>
65     <refsection>
66         <title>Description</title>
67         <refsect3>
68             <title>Cas des matrices</title>
69             <para>
70               Si  <literal>x</literal> est un tableau <literal>i</literal> et <literal>j</literal> peuvent être :
71             </para>
72             <variablelist>
73               <varlistentry>
74                 <term>Des scalaires, vecteurs ou matrices</term>
75                 <listitem>
76                   <para>Dans ce cas, les valeurs données en
77                     indices doivent être strictement positives. Seules les parties
78                     entières sont prises en compte.
79                   </para>
80                   <itemizedlist>
81                     <listitem>
82                       <para>
83                         Si <literal>a</literal> est une matrice de dimensions
84                         <literal>(size(i,'*'),size(j,'*'))</literal>
85                         <literal>x(i,j)=a</literal> renvoie une nouvelle matrice
86                         <literal>x</literal> telle que <literal>x(int(i(l)),int(j(k)))=a(l,k)
87                         </literal>
88                         pour <literal>l</literal> variant de 1 à
89                         <literal>size(i,'*')</literal> et <literal>k</literal> variant de
90                         1 à <literal>size(j,'*')</literal>, les autres composantes
91
92                         initiales de <literal>x</literal> sont inchangées.
93                       </para>
94                     </listitem>
95                     <listitem>
96                       <para>
97                         Si <literal>a</literal> est un scalaire
98                         <literal>x(i,j)=a</literal> renvoie une nouvelle matrice
99                         <literal>x</literal> telle que <literal>x(int(i(l)),int(j(k)))=a </literal>
100                         pour <literal>l</literal> variant de 1 à
101                         <literal>size(i,'*')</literal> et <literal>k</literal> variant de
102                         1 à <literal>size(j,'*')</literal>, les autres composantes
103                         initiales de <literal>x</literal> sont inchangées.
104                       </para>
105                     </listitem>
106                     <listitem>
107                       <para>
108                         Si la valeur maximum de <literal>i</literal> ou
109                         <literal>j</literal> dépasse la dimension correspondante de
110                         <literal>x</literal>, alors <literal>x</literal> est au préalable agrandie
111                         aux dimensions adéquates en stockant des zéros pour les matrices
112                         standard, des chaînes vides pour les matrices de chaînes de
113                         caractères ou la valeur %F pour les matrices booléennes.
114                       </para>
115                     </listitem>
116                     <listitem>
117                       <para>
118                         <literal>x(i,j)=[]</literal> détruit les lignes
119                         spécifiées par <literal>i</literal> si <literal>j</literal> désigne toutes
120                         les colonnes de <literal>x</literal> ou détruit les colonnes
121                         spécifiées par <literal>j</literal> si <literal>i</literal> désigne toutes
122                         les lignes de <literal>x</literal>. Dans tous les autres cas
123                         <literal>x(i,j)=[]</literal> produit une erreur.
124                       </para>
125                     </listitem>
126                     <listitem>
127                       <para>
128                         <literal>x(i)=a</literal> où <literal>a</literal> est un
129                         vecteur renvoie une nouvelle matrice <literal>x</literal> telle que
130                         <literal>x(int(i(l)))=a(l)</literal> pour <literal>l</literal> variant de 1
131                         à <literal>size(i,'*')</literal> , les autres composantes
132                         initiales de <literal>x</literal> sont inchangées.
133                       </para>
134                     </listitem>
135                     <listitem>
136                       <para>
137                         <literal>x(i)=a</literal> où <literal>a</literal> est un
138                         scalaire, renvoie une nouvelle matrice <literal>x</literal> telle que
139                         <literal>x(int(i(l)))=a</literal> pour <literal>l</literal> variant de 1 à
140                         <literal>size(i,'*')</literal> , les autres composantes
141                         initiales de <literal>x</literal> sont inchangées.
142                       </para>
143                       <para>
144                         Si la valeur maximum de <literal>i</literal> dépasse
145                         <literal>size(x,1)</literal>, <literal>x</literal> est au préalable agrandie
146                         aux dimensions adéquates en stockant des zéros pour les matrices
147                         standard, des chaînes vides pour les matrices de chaînes de
148                         caractères ou la valeur %F pour les matrices booléennes.
149                       </para>
150                       <variablelist>
151                         <varlistentry>
152                           <term>Si</term>
153                           <listitem>
154                             <para>
155                               <literal>x</literal> est une matrice 1 x 1 <literal>a</literal> peut
156                               être un vecteur ligne (resp. colonne) de dimension
157                               <literal>size(i,'*')</literal>. La matrice
158                               <literal>x</literal> obtenue est un vecteur ligne
159                               (resp. colonne)
160                             </para>
161                           </listitem>
162                         </varlistentry>
163                         <varlistentry>
164                           <term>Si</term>
165                           <listitem>
166                             <para>
167                               <literal>x</literal> est un vecteur
168                               ligne (resp. colonne) <literal>a</literal> doit être un vecteur
169                               ligne (resp. colonne) de dimension
170                               <literal>size(i,'*')</literal>
171                             </para>
172                           </listitem>
173                         </varlistentry>
174                         <varlistentry>
175                           <term>Si</term>
176                           <listitem>
177                             <para>
178                               <literal>x</literal> est une matrice
179                               en général <literal>a</literal> doit être un vecteur ligne ou
180                               colonne de dimension <literal>size(i,'*')</literal> et
181                               la valeur maximum de<literal>i</literal> ne peut dépasser
182                               <literal>size(x,'*')</literal>,
183                             </para>
184                           </listitem>
185                         </varlistentry>
186                       </variablelist>
187                     </listitem>
188                     <listitem>
189                       <para>
190                         <literal>x(i)=[]</literal> supprime les termes
191
192
193                         spécifiés par <literal>i</literal>.
194                       </para>
195                     </listitem>
196                   </itemizedlist>
197                 </listitem>
198               </varlistentry>
199               <varlistentry>
200                 <term>Le : symbole</term>
201                 <listitem>
202                   <para>
203                     Le symbole <literal> : </literal> signifiant "tous les éléments".
204                   </para>
205                   <itemizedlist>
206                     <listitem>
207                       <para>
208                         <literal>x(i,:)=a</literal> est interprété comme
209
210                         <literal>x(i,1:size(x,2))=a</literal>
211                       </para>
212                     </listitem>
213                     <listitem>
214                       <para>
215                         <literal>x(:,j)=a</literal> est interprété comme
216                         <literal>x(1:size(x,1),j)=a</literal>
217                       </para>
218                     </listitem>
219                     <listitem>
220                       <para>
221                         <literal>x(:)=a</literal> renvoie dans
222                         <literal>x</literal> la matrice <literal>a</literal> remise en forme en
223                         accord avec les dimensions de
224                         x. <literal>size(x,'*')</literal> doit être égal
225                         à<literal>size(a,'*')</literal>
226                       </para>
227                     </listitem>
228                   </itemizedlist>
229                 </listitem>
230               </varlistentry>
231               <varlistentry>
232                 <term>Vecteurs de booléens</term>
233                 <listitem>
234                   <para>  Si un indice
235
236                     (<literal>i</literal> ou <literal>j</literal> ) est un vecteur de booléens, il
237                     est interprété comme <literal>find(i)</literal> ou <literal>find(j)</literal>,
238                     respectivement.
239                   </para>
240                 </listitem>
241               </varlistentry>
242               <varlistentry>
243                 <term>Polynomes</term>
244                 <listitem>
245                   <para>
246                     Si un indice (<literal>i</literal> ou
247                     <literal>j</literal> ) est un vecteur de polynômes ou de polynômes
248                     implicites, il est interprété comme <literal>horner(i,m)</literal> ou
249                     <literal>horner(j,n)</literal>, respectivement, où <literal>m</literal> et
250                     <literal>n</literal> sont les dimensions de <literal>x</literal> associées.
251                     Même si cette fonctionnalité marche pour tous les polynômes, il
252                     est recommandé d'utiliser des polynômes dans <literal>$</literal>
253                     par souci de lisibilité.
254                   </para>
255                 </listitem>
256               </varlistentry>
257             </variablelist>
258         </refsect3>
259         <refsect3>
260             <title>Cas des listes</title>
261             <itemizedlist>
262               <listitem>
263                 <para>
264                   S'ils sont présents les <literal>ki</literal> donnent le chemin
265                   vers un terme d'une sous-liste de la liste
266                   <literal>l</literal>. Ils permettent de faire une insertion récursive
267                   directe sans utiliser de variable intermédiaire.  Les instructions
268                   <literal>l(k1)...(kn)(i)=a</literal> et
269                   <literal>l(list(k1,...,kn,i)=a)</literal> sont interprétées comme :
270                 </para>
271                 <para>
272                   <literal>lk1 = l(k1)</literal>
273                   <literal> ..  = ..  </literal>
274                 </para>
275                 <para>
276                   <literal>lkn =   lkn-1(kn)</literal>
277                 </para>
278                 <para>
279                   <literal>lkn(i) = a</literal>
280                   <literal>lkn-1(kn) =lkn</literal>
281                   <literal> ..  = ..</literal>
282                 </para>
283                 <para>
284                   les instructions<literal>l(k1)...(kn)(i,j)=a</literal> et
285                   <literal>l(list(k1,...,kn,list(i,j))=a</literal> sont interprétées
286                   comme:
287                 </para>
288                 <para>
289                   <literal>lk1 = l(k1)</literal>
290                   <literal> ..  = ..  </literal>
291                 </para>
292                 <para>
293                   <literal>lkn =lkn-1(kn)</literal>
294                   <literal>lkn(i,j) = a</literal>
295                 </para>
296                 <para>
297                   <literal>lkn-1(kn) = lkn</literal>
298                   <literal> ..  = ..  </literal>
299                 </para>
300                 <para>
301                   <literal>l(k1) = lk1</literal>
302                 </para>
303               </listitem>
304               <listitem>
305                 <para>
306                   <literal>i</literal> peut être :
307                 </para>
308                 <itemizedlist>
309                   <listitem>
310                     <para>un scalaire réel positif (seule sa partie entière est prise en compte).
311                       <literal>l(0)=a</literal> ajoute un terme "à gauche"
312                       de la liste <literal>l(i)=a</literal> affecte <literal>a</literal> au
313                       terme <literal>i</literal> de la liste <literal>l</literal>. Si
314                       <literal>i&gt;size(l)</literal>, <literal>l</literal> est
315                       préalablement agrandie et les termes créés sont de type
316                       non-défini.  <literal>l(i)=null()</literal> supprime le terme
317                       <literal>i</literal>th de la liste.
318                     </para>
319                   </listitem>
320                   <listitem>
321                     <para>
322                       un polynôme. Si <literal>i</literal> est un
323
324                       vecteur de polynômes ou de polynômes implicites il est
325                       interprété comme <literal>horner(i,m)</literal> où
326                       <literal>m=size(l)</literal>. Même si cette fonctionnalité marche
327                       pour tous les polynômes, il est recommandé d'utiliser
328                       des polynômes dans <literal>$</literal> par souci de lisibilité.
329                     </para>
330                   </listitem>
331                 </itemizedlist>
332               </listitem>
333               <listitem>
334                 <para>
335                   <literal>k1,..kn</literal> peuvent être :
336                 </para>
337                 <itemizedlist>
338                   <listitem>
339                     <para>un polynôme, interprété comme
340                       <literal>horner(ki,m)</literal> ou <literal>m</literal> est la taille de
341                       la sous-liste correspondante.
342                     </para>
343                   </listitem>
344                   <listitem>
345                     <para>une chaîne de caractères associée à un nom
346
347                       d'entrée de sous-liste.
348                     </para>
349                   </listitem>
350                 </itemizedlist>
351               </listitem>
352             </itemizedlist>
353         </refsect3>
354         <refsect3>
355             <title>Remarque</title>
356             <para>
357                 Pour les matrices rationnelles et les systèmes dynamiques
358                 linéaires stockés sous forme de représentation d'état, la
359                 syntaxe <literal>x(i)</literal> ne doit pas être utilisée pour
360                 l'insertion des éléments d'un vecteur, à cause de la
361                 confusion possible avec l'insertion des éléments de liste. La
362                 syntaxe <literal>x(1,j)</literal> où <literal>x(i,1)</literal> doit être
363                 utilisée dans ce cas.
364             </para>
365         </refsect3>
366     </refsection>
367     <refsection>
368         <title>Exemples</title>
369         <para>
370             Cas des matrices :
371         </para>
372         <programlisting role="example"><![CDATA[
373 a = [1 2 3 ; 4 5 6]
374 a(1,2) = 10
375 a([1 1],2) = [-1;-2]
376 a(:,1) = [8;5]
377 a(1,3:-1:1) = [77 44 99]
378 a(1) = %s
379 a(6) = %s + 1
380 a(:) = 1:6
381 a([%t %f],1) = 33
382 a(1:2,$-1) = [2 ; 4]
383 a($:-1:1,1) = [8 ; 7]
384 a($) = 123
385 a(1,%pi) = 1 // équivalent à a(1,3)=1
386 //
387 x = 'test'
388 x([4 5]) = ['4','5']
389 //
390 b = [1/%s, (%s+1)/(%s-1)]
391 b(1,1) = 0
392 b(1,$) = b(1,$)+1
393 b(2) = [1 2] // le numérateur
394      ]]></programlisting>
395         <para>
396             Cas des listes simples ou tlist :
397         </para>
398         <programlisting role="example"><![CDATA[
399 l = list(1,'qwerw',%s)
400 l(1) = 'Changed'
401 l(0) = 'Added'
402 l(%pi) = 1  // équivalent à l(3)=1
403 l(6) = ['one more';'added']
404 //
405 //
406 dts = list(1, tlist(['x';'a';'b'],10,[2 3]));
407 dts(2)('a') = 33
408 dts(2)('b')(1,2) = -100
409      ]]></programlisting>
410     </refsection>
411     <refsection role="see also">
412         <title>Voir aussi</title>
413         <simplelist type="inline">
414             <member>
415                 <link linkend="extraction">extraction</link>
416             </member>
417             <member>
418                 <link linkend="colon">colon</link>
419             </member>
420             <member>
421                 <link linkend="find">find</link>
422             </member>
423             <member>
424                 <link linkend="horner">horner</link>
425             </member>
426             <member>
427                 <link linkend="parentheses">parentheses</link>
428             </member>
429         </simplelist>
430     </refsection>
431 </refentry>