### 6.46.4 Définir une matrice : `matrix`

`matrix` a 1,2 ou 3 arguments.

1. 1 argument qui est une table définissant une matrice creuse (cf 6.51) et `matrix` renvoie la matrice correspondante.
   On tape :
   `purge(A)`
   `A:=table((0,0)=1,(4,4)=4)`
   `matrix(A)`
   On obtient
   `[[1,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,4]]`
2. 2 arguments qui sont deux entiers n et p et `matrix` renvoie la matrice nulle de dimension n × p.
   On tape :
   `matrix(3,4)`
   On obtient
   `[[0,0,0,0],[0,0,0,0],[0,0,0,0]]`
3. 3 arguments qui sont
   - deux entiers n et p.
   - une fonction de deux variables `j` et `k` égale à la valeur de aj,k (`j` représente un numéro de ligne et `k` un numéro de colonne). `matrix` renvoie la matrice de coefficients aj,k (j=0..n−1 et k=0..p−1) de dimension n × p si on est en Mode (syntaxe) `xcas` ou renvoie la matrice de coefficients aj,k (j=1..n et k=1..p) de dimension n × p si on est en Mode (syntaxe) `maple, mupad, ti89/92`.
     On tape :
     `matrix(4,3,(j,k)->j+k)`
     ou on définit la fonction h par : `h(j,k):=j+k` et,
     on tape :
     `matrix(4,3,h)`
     On obtient en Mode (syntaxe) `Xcas`:
     `[[0,1,2],[1,2,3],[2,3,4],[3,4,5]]`
     On obtient en Mode (syntaxe) `maple, mupad, ti89/92`:
     `[[2,3,4],[3,4,5],[4,5,6],[5,6,7]]`
     Attention ! à l’ordre des variables dans la définition de aj,k et à j and k qui partent de `0` si on est en Mode (syntaxe) `xcas` et qui partent de `1` si on est en Mode (syntaxe) `maple, mupad, ti89/92`