4.1 Extraction, insertion et délétion

Pour désigner des éléments d'une matrice, on utilise la notation A(B) ou A(B,C); où B et C sont des matrices d'indices ou des matrices de booléens.

Quand une expression A(B) ou A(B,C) est un membre gauche d'une affectation, alors il s'agit d'une opération d'affectation si le membre de droite de l'affectation s'évalue à une matrice non vide. On donne alors une valeur à la sous matrice désignée par le membre gauche en utilisant la valeur du membre droit. Il faut bien sûr que les deux sous matrices aient des tailles compatibles (i.e il faut qu'elles aient la même taille ou bien que le membre droit soit scalaire).

Il peut aussi s'agir d'une opération de délétion si le membre droit s'évalue à une matrice vide. On élimine alors les éléments désignés par le membre gauche. Les opérations d'affectation et de délétion changent bien sûr dynamiquement les dimensions de la matrice concernée.


\begin{sessioncmd}
\par -->clear A;
-->A(2,4) = 1
A =
\par ! 0. 0. 0. 0. !
! 0....
...une colonne par affectation }
A =
\par ! 8. 4. !
! 8. 5. !
\par\end{sessioncmd}

Quand une expression A(B) ou A(B,C) apparaît dans une expression Scilab (hors membre gauche d'une affectation), elle désigne alors une sous matrice de la matrice A et son évaluation conduit à la création d'une nouvelle matrice.


\begin{sessioncmd}
\par -->A = int(10*rand(3,7)) \sleftarrow{\normalfont\verb+in...
...rnière et dernière colonnes)}
B =
\par ! 2. 8. !
! 2. 3. !
\par\end{sessioncmd}

Une expression A(B) ou A(B,C) désigne une sous matrice de la matrice A. Quand B et C sont des matrices scalaires elles désignent les indices à utiliser pour désigner la sous matrice. Quand B et C sont des matrices de booléens, alors les indices à considérer sont les indices pour lesquels B et C prennent la valeur T. On peut utiliser la fonction find pour obtenir explicitement les indices correspondants.


\begin{sessioncmd}
\par -->A = int(10*rand(2,4)) \sleftarrow{\normalfont\verb+in...
...éments de \verb+A+ qui sont \verb+>=2+}
I =
\par ! 1. 3. !
\par\end{sessioncmd}