Principaux types de variables

Comme indiqué précédemment, il n'est pas nécessaire de pré-définir le type d'une variable, car MATLAB définit automatiquement le type de variables nécessaire lors de son affectation.

La fenêtre Workspace montre les variables définies et donne accès à un ensemble d'informations.

Remarque

Si cette fenêtre n'est pas ouverte dans votre session actuelle de MATLAB, il vous suffit d'appeler la commande workspace pour ouvrir cette fenêtre.

Exemple d'une fenêtre de Workspace

Le workspace affiche toutes les variables présentes actuellement en mémoire. Vous pouvez y afficher différentes informations, telles que :

  • le nom de la variable ;

  • sa valeur ;

  • son type (class en anglais) ;

  • sa taille (size) ;

  • son occupation mémoire (en Bytes, 1 byte valant 8 bits, comme un octet en français).

Le type principal qu'utilise MATLAB est le double. Un double est un nombre stocké en double précision, c'est-à-dire sur 64bits (ou 32bits, selon l'architecture matériel de l'ordinateur que vous utilisez).

Cela signifie que contrairement à la plupart des langages, MATLAB code de la même manière l'entier 1, et le réel 1.0.

Remarque

Dans certains cas, ce comportement par défaut de MATLAB peut être un mauvais choix. Si vous manipulez de grandes quantités de données, qui représentent toutes des entiers, vous auriez intérêt à définir vos variables comme étant explicitement des entiers, codés en 8 bits, et utilisant donc 8 fois moins de mémoire...

D'autres types existent, on peut notamment citer ici :

  • le type logical, pour les valeurs logiques vraie (true) codée avec 1, ou faux (false) codée avec 0. Certaines fonctions et opérations, comme celles avec des opérateurs de comparaison, renvoient des variables de type logical.

  • les types string et char, pour un caractère seul, ou une chaîne de caractères.

Les variables de type string permettent de coder de texte, que ce soit un seul mot ou plusieurs. Elles sont délimitées par un double quote (") ; par exemple :

Ecole = "IMT Mines Albi"

Il est possible de créer des vecteurs (ligne ou colonne) ou des matrices de type string de la même manière que sont créés des vecteurs et les matrices de type double.

myLanguages = ["Matlab", "Python", "Ada","C", "Perl", "JavaScript"] ;

Le type string est un type créé pour gérer des données textuelles riches, typiquement, un ensemble de mots. Il existe un autre type de données correspondant à des chaînes de caractère, c'est le type char défini avec de simples quotes (').

Le type char est un type de données plus ancien, et plus rudimentaire, mais qui s'avère aussi intéressant pour manipuler des chaines de caractère simples.

En fait, pour MATLAB, une chaîne de caractères de type char est tout simplement un tableau de caractères. On peut donc simplement assembler des chaînes entre-elles, comme nous le verrons ensuite pour des tableaux numériques :

>> langage = 'MATLAB' ;
>> phrase = ['Je découvre ',langage]
 
phrase =
 
       Je découvre MATLAB
  • le type categorical pour les variables catégorielles

C’est la manière la plus élégante de représenter un nombre fini de valeurs discrètes et répétées. Ces variables occupent moins d’espace que les variables string et des opérations simples peuvent être réalisées avec ce type de variable. La fonction categorical permet de convertir une variable en ce type .

Exemple

L'utilisation du type categorical facilite la recherche de correspondance de chaînes de caractère.

>> strJours = ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi"] ;
>> Jours_Semaine = categorical(strJours) ;
>> monJour = "Mardi" ;
>> indice_monJour = monJour == Jours_Semaine ;
>> display(indice_monJour) ;
 
indice_monJour =
 
   1×5 logical array
 
       0 1 0 0 0
  • le type datetime pour les dates et les heures

C’est un moyen efficace et simple pour représenter et manipuler les dates et les heures. Des opérations peuvent être réalisées directement sur ces variables de ce type. La fonction datetime permet de créer ce type de variables en précisant l’année, le mois, le jour, l’heure, la minute et la seconde.

Exemple

Dans cet exemple deux variables de type datetime sont créées et la période entre les deux dates est calculée par une simple soustraction.

% date initiale : 3 juin 2020 à 15H24
t_debut = datetime(2020,6,3,15,24,0);
% date finale : 27 février 2021 à 6h01 et 22 secondes
t_fin = datetime(2021,2,27,6,1,22) ;
Intervalle = t_fin-t_debut

La variable Intervalle contient le résultat suivant : 6446:37:22, soit 6446 heures, 37 minutes et 22 secondes. Le format du résultat pourrait être modifié, pour être personnalisé.

Remarques et compléments

Remarque

On pourrait croire que les types char et string sont redondants, mais ils ont été créés pour des usages différents. Un char est un ensemble de caractères, alors qu'un string est un mot. Il en résulte ainsi des comportements différents.

>> charE = 'Éléphant' ;
>> strE = "Éléphant" ;
>>
>> charE(1)
 
ans =
 
       'É'
 
>> strE(1)
 
ans =
 
       "Éléphant"
différence de comportement entre char et string

Complément

Des opérations peuvent être réalisées entre des variables de type différents, et des règles implicites de conversion sont alors suivies par MATLAB. Par exemple, l'opérateur + entre des string et des double conduit à un résultat de type string. Dans certains cas, il peut être utile de forcer la conversion par la fonction string.

Exemple

Devise = "Euro" ; % variable de type string
valeur = 12.33 ; %variable de type double
Prix = valeur + string(' ') + Devise + 's' ;
display(Prix)

qui donne le résultat :

Prix =
        "12.33 Euros"

Complément

Des commandes permettent de vérifier le type d'une variable.

isnumeric, islogical, istring ou ischar permet de vérifier si une variable est respectivement numérique, logique, de type string ou caractères. Ces fonctions renvoient 0 si c'est faux, et 1 si c'est vraie.

La taille (size) qu'indique MATLAB est le nombre de lignes et de colonnes de la variable. Rappelons que pour MATLAB toutes variables est vue comme une matrice. Une variable contenant une valeur unique est donc une matrice de dimension 1x1.

De manière similaire à ce que l'on voit dans le Workspace, la commande whos donne un ensemble d'informations sur les variables stockées en mémoire. Cette commande permet très simplement d'afficher les informations concernant uniquement une variable, ou toutes les variables correspondant à un filtre.

Exemple

Si l'on veut les informations concernant la variable a :

>> whos('a')
  Name Size Bytes Class Attributes
  a   1x1  8  double

Si l'on veut les informations de toutes les variables dont le nom commence par la lettre a, on utilise la syntaxe whos('a*')