Matrice ou tableau dans MATLAB ?

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]

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 :

>> M = rand(5,2,7,4,5,8);
>> 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 :

>> I = imread('lena.jpg');
>> 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]

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 :

>> A = [4 2 ; 1 -5];
>> 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 ».

3 réflexions au sujet de « Matrice ou tableau dans MATLAB ? »

  1. Merel

    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 ^_^.

  2. Avatar de DutDut Auteur de l’article

    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.

  3. Mike

    It is also worth noting that MATLAB recently introduced a « table » datatype (they backported the « dataset » class from the Statistics Toolbox to core MATLAB)

Répondre à Dut Annuler la réponse.

Votre adresse de messagerie ne sera pas publiée.

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>