Les termes « matrice » et « tableau » sont souvent employés pour désigner des variables MATLAB, malheureusement avec une certaine confusion.
Je vais donc tenter de convaincre les utilisateurs qui ne sont comme moi, ni mathématicien ni informaticien de formation, d’utiliser à l’avenir le terme adéquat.
Ce billet est inspiré par les remarques faites par Jean-Marc Blanc sur les forums MATLAB depuis plusieurs années.
Tableau
Qu’est-ce qu’un tableau ? Un outil d’informaticien !
En informatique, un tableau est une structure qui permet de stocker des données. On peut se la représenter comme une grille régulière de dimension quelconque. Les dimensions les plus courantes sont 1D, 2D, 3D voire 4D.
Prenons par exemple un tableau 2D contenant des valeurs numériques entières :
M =
1 2 3
4 5 6
7 8 9
>> whos M
Name Size Bytes Class Attributes
M 3x3 72 double
Un tableau peut avoir plus de deux dimensions dans MATLAB. Par exemple, voici un tableau à six dimensions :
>> whos M
Name Size Bytes Class Attributes
M 6-D 89600 double
Avec MATLAB, on se sert des tableaux pour stocker par exemple les valeurs des pixels d’une image. Un tableau 2D sera utilisé pour les images en couleurs indexées alors qu’un tableau 3D sera utilisé pour les images en couleurs vraies (RGB). Plus d’informations à ce sujet dans le tutoriel Gestion des couleurs.
Par exemple :
>> whos I
Name Size Bytes Class Attributes
I 512x512x3 786432 uint8
Matrice
Qu’est-ce qu’une matrice ? Un outil de mathématicien !
En mathématiques (calcul numérique), une matrice peut être considérée comme un tableau à deux dimensions (2D) et… rien d’autre. Une matrice possède des propriétés particulières et doit respecter les règles du calcul matriciel.
Le tableau suivant peut donc être considéré comme une matrice :
M =
1 2 3
4 5 6
7 8 9
>> whos M
Name Size Bytes Class Attributes
M 3x3 72 double
Avec MATLAB, on se sert des matrices pour, par exemple, résoudre des systèmes d’équations linéaires. Lire à ce sujet le tutoriel Résolution des systèmes linéaires de Jean-Marc Blanc.
Par exemple, on peut utiliser des matrices pour résoudre le système d’équations suivant :
4x + 2y = 5
x – 5y = 4
Dans MATLAB :
>> B = [5 ; 4];
>> A\B
ans =
1.5000
-0.5000
A et B sont donc des matrices dans ce cas.
Conclusion
Tout est tableau dans MATLAB, vous pouvez donc toujours employer ce terme.
Les matrices sont des tableaux 2D, que l’on utilise uniquement dans le cadre des mathématiques (algèbre linéaire).
Voila, j’espère vous avoir éclairé.
Ma première résolution pour l’année 2014 consistera à prêter un maximum d’attention à l’emploi de ces deux termes.
Pour résumer
Avec MATLAB :
- Tableau : tableau de dimension quelconque ;
- Matrice : tableau à deux dimensions (2D) utilisé pour en mathématiques (calculs numériques).
Note : en anglais, « tableau » se dit « array », et « matrice » se dit « matrix ».
Salut Dut,
c’est un article intéressant qui remet les idées en place.
Petit complément d’information. Plus généralement en mathématiques, la matrice est un tenseur d’ordre 2. C’est un terme qui est régulièrement utilisé. Ca pourrait être sympa de le cité.
Un tenseur d’ordre 0 est un scalaire, d’ordre 1 un vecteur, d’ordre 2 un matrice.
Plus généralement, un tableau à 6 dimension peut-être assimilable à un tenseur d’ordre 6 pour les applications mathématiques.
Donc n’importe quel tableau à n dimensions définit avec matlab peut avoir son pendant en tenseur d’ordre n ^_^.
Remarque pertinente en effet.
Je voulais vraiment me focaliser sur l’utilisation adéquat des deux termes « matrice » et « tableau » qu’on peut lire quotidiennement sur les forums.
Le terme « tenseur » y est beaucoup moins utilisé, donc moins source d’erreur.
It is also worth noting that MATLAB recently introduced a « table » datatype (they backported the « dataset » class from the Statistics Toolbox to core MATLAB)