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.
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 typelogical
.
les types
string
etchar
, 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 :
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
.
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 :
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.
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.
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.
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 :
qui donne le résultat :
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
:
Si l'on veut les informations de toutes les variables dont le nom commence par la lettre a, on utilise la syntaxe whos('a*')