Livre_silo 30 août 2013 16:32 Page 164
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
164
Informatique pour tous
6.5.3 Dimensions
Un tableau de tableaux ne représente pas nécessairement une matrice de dimensions (n, p).
En effet, rien n’ empêche les tableaux qui représentent les lignes de la matrice d’être de
longueurs différentes :
figures/matrice3.pdf
On va écrire une fonction dimensions qui vérifie qu’un tableau de tableaux m représente
bien une matrice de dimensions (n, p), avec n > 0 et p > 0, et renvoie la paire (n, p).
La fonction n’ est pas définie (elle échouera) lorsque son argument ne représente pas une
matrice. On commence par déterminer n comme la longueur du tableau m et par vérifier
que n > 0 :
def dimensions(m):
n = len(m)
assert n > 0
Pour déterminer la dimension p, il suffit de considérer la longueur de la première ligne m[0].
Cette ligne existe car n > 0. De même, on vérifie que p > 0 :
p = len(m[0])
assert p > 0
Enfin, on vérifie que toutes les lignes de m ont bien la longueur p et on renvoie la paire
(n, p) :
for r in m:
assert len(r) == p
return (n, p)
Il est important de noter que la fonction dimensions fait l’hypothèse que son argument m est
un tableau de tableaux. Dans le cas contraire, elle peut échouer.
6.5.4 Transposition
On va maintenant écrire une fonction qui transpose une matrice M de dimensions (n, p),
c’est-à-dire qui renvoie une nouvelle matrice T de dimensions (p, n), avec T j,i = M i,j .
On commence par récupérer les dimensions de la matrice m puis on crée une matrice vide t
de dimensions (p, n) :
def transpose(m):
n, p = dimensions(m)
t = creer_matrice(p, n, None)
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
164
Informatique pour tous
6.5.3 Dimensions
Un tableau de tableaux ne représente pas nécessairement une matrice de dimensions (n, p).
En effet, rien n’ empêche les tableaux qui représentent les lignes de la matrice d’être de
longueurs différentes :
figures/matrice3.pdf
On va écrire une fonction dimensions qui vérifie qu’un tableau de tableaux m représente
bien une matrice de dimensions (n, p), avec n > 0 et p > 0, et renvoie la paire (n, p).
La fonction n’ est pas définie (elle échouera) lorsque son argument ne représente pas une
matrice. On commence par déterminer n comme la longueur du tableau m et par vérifier
que n > 0 :
def dimensions(m):
n = len(m)
assert n > 0
Pour déterminer la dimension p, il suffit de considérer la longueur de la première ligne m[0].
Cette ligne existe car n > 0. De même, on vérifie que p > 0 :
p = len(m[0])
assert p > 0
Enfin, on vérifie que toutes les lignes de m ont bien la longueur p et on renvoie la paire
(n, p) :
for r in m:
assert len(r) == p
return (n, p)
Il est important de noter que la fonction dimensions fait l’hypothèse que son argument m est
un tableau de tableaux. Dans le cas contraire, elle peut échouer.
6.5.4 Transposition
On va maintenant écrire une fonction qui transpose une matrice M de dimensions (n, p),
c’est-à-dire qui renvoie une nouvelle matrice T de dimensions (p, n), avec T j,i = M i,j .
On commence par récupérer les dimensions de la matrice m puis on crée une matrice vide t
de dimensions (p, n) :
def transpose(m):
n, p = dimensions(m)
t = creer_matrice(p, n, None)
