Construction de tableaux par blocs

Dans certains cas, il peut être utile d'assembler des matrices pour en former une plus grande. Il s'agit d'une construction par blocs.

Cela peut être utile pour la création d'une matrice incidente, dans le cadre de la résolution de système algébrique, ou pour construire un tableau de données regroupant des lignes ou des colonnes de données expérimentales.

Exemple

À titre d'exemple, considérons les trois matrices suivantes :

  • la matrice \(M\) telle que définie précédemment \(M = \left[\begin{array}{ccc}11 & 12 & 13 \\21 & 22 & 23 \\ 31 & 32 & 33\end{array}\right]\) ;

  • un vecteur colonne \(C = \left[\begin{array}{c}14 \\24 \\ 34\end{array}\right]\) ;

  • un vecteur ligne \(L = \left[\begin{array}{ccc}41 & 42 & 43 \end{array}\right]\).

À partir de ces matrices et vecteurs, on peut définir la matrice \(4x4\) par blocs :

\[N = \left[ \begin{array}{ccc|c} & & &\\ & M & & C \\ & & & \\ \hline & L & & 0 \end{array} \right] \]

Pour faire cela sous MATLAB, il suffit de définir la matrice \(N\) comme si les blocs \(M\), \(C\) et \(L\) étaient des scalaires, c'est-à-dire selon la syntaxe vue précédemment, et en écrivant tout simplement :

>> N=[M V
L 0]
 
N =
    11  12  13  14
    21  22  23  24
    31  32  33  34
    41  42  43  0

ou bien en utilisant le caractère ;

>> N=[M V; U 0]

Cette syntaxe est très utilisée pour allonger des vecteurs ou des matrices, par exemple pour ajouter une colonne à \(M\), constituée par \(C\) :

>> Mc=[M C]
 
Mc =
    11  12  13  14
    21  22  23  24
    31  32  33  34

ou de manière analogue pour ajouter une ligne constituée par \(L\) :

>> Ml=[M;L]
 
Ml =
    11  12  13
    21  22  23
    31  32  33
    41  42  43