### 6.44.22 Faire une matrice avec une liste de matrices : `blockmatrix`

`blockmatrix` a comme arguments deux entiers n,m et une liste de longueur n*m formée de matrices (de même dimension p × q ou de taille différentes : les m premières matrices ont le même nombre de lignes et forment un bloc de c colonnes, les m suivantes ont le même nombre de lignes et forment un bloc de c colonnes, etc... ). On forme ainsi n blocs de c colonnes.
`blockmatrix` renvoie la matrice de c colonnes obtenue en mettant ces n blocs les uns sous les autres. Si les matrices de l’argument ont même dimension p × q, la matrice résultat a pour dimension p*n × q*m.
On tape :

`blockmatrix(2,3,[idn(2),idn(2),idn(2), idn(2),idn(2),idn(2)])`

On obtient :

`[[1,0,1,0,1,0],[0,1,0,1,0,1], [1,0,1,0,1,0],[0,1,0,1,0,1]]`

On tape :

`blockmatrix(3,2,[idn(2),idn(2), idn(2),idn(2),idn(2),idn(2)])`

On obtient :

`[[1,0,1,0],[0,1,0,1], [1,0,1,0],[0,1,0,1],[1,0,1,0],[0,1,0,1]]`

On tape :

`blockmatrix(2,2,[idn(2),newMat(2,3), newMat(3,2),idn(3)])`

On obtient :

`[[1,0,0,0,0],[0,1,0,0,0],[0,0,1,0,0], [0,0,0,1,0],[0,0,0,0,1]]`

On tape :

`blockmatrix(3,2,[idn(1),newMat(1,4), newMat(2,3),idn(2),newMat(1,2),[[1,1,1]]])`

On obtient :

`[[1,0,0,0,0],[0,0,0,1,0],[0,0,0,0,1],[0,0,1,1,1]]`

On tape :

`A:=[[1,1],[1,1]];B:=[[1],[1]]`

puis :

`blockmatrix(2,3,[2*A,3*A,4*A,5*B,newMat(2,4),6*B])`

On obtient :

`[[2,2,3,3,4,4],[2,2,3,3,4,4], [5,0,0,0,0,6],[5,0,0,0,0,6]]`