HOWTO · MATLAB

Comment vérifier le type d’une variable dans MATLAB

Découvrez comment obtenir la classe d’une valeur, examiner les variables de l’espace de travail et tester une condition de type dans MATLAB.

Sur cette page

Pour vérifier une valeur dans MATLAB, utilisez class() pour obtenir le nom de sa classe, whos pour examiner les variables de l’espace de travail courant, et des prédicats comme isa(), ischar() ou isnumeric() pour obtenir un résultat logique utilisable comme condition. Choisissez la méthode selon que vous voulez identifier une valeur, passer en revue les variables de l’espace de travail ou orienter une branche de votre code.

Vérifier le type d’une variable avec class() dans MATLAB

La fonction class() renvoie un vecteur de caractères qui indique la classe d’une valeur. Par exemple, MATLAB interprète le littéral numérique 42 comme un double, tandis que le texte entre apostrophes 'Hello, MATLAB!' est un tableau de caractères de classe char. Ce script compatible avec Octave illustre l’inspection et les prédicats dans un même enchaînement.

numericVar = 42;
charVar = 'Hello, MATLAB!';

fprintf('numericVar class: %s\n', class(numericVar));
fprintf('charVar class: %s\n', class(charVar));
fprintf('numericVar is double: %d\n', isa(numericVar, 'double'));
fprintf('charVar is a character array: %d\n', ischar(charVar));
fprintf('numericVar is numeric: %d\n', isnumeric(numericVar));

if isa(numericVar, 'double')
    fprintf('Process numericVar as a double.\n');
end
numericVar class: double
charVar class: char
numericVar is double: 1
charVar is a character array: 1
numericVar is numeric: 1
Process numericVar as a double.

Dans MATLAB, utilisez class(value) lorsque vous avez besoin du nom exact de la classe. Cet appel décrit une seule valeur et ne dresse pas l’inventaire de l’espace de travail.

Examiner les types des variables avec la commande whos dans MATLAB

La commande whos récapitule les variables de l’espace de travail courant, notamment leurs noms, dimensions, tailles en octets, classes et attributs. Saisissez whos pour afficher toutes les variables, ou whos numericVar pour en examiner une seule. La colonne des classes permet de comparer plusieurs valeurs. Cette vue se limite aux variables accessibles dans l’espace de travail ou la portée courante : elle ne peut pas examiner une expression arbitraire qui n’a pas été affectée à une variable. Pour répondre à cette question sur une valeur unique, utilisez class(expression).

Tester un type précis avec isa() dans MATLAB

Utilisez isa(value, 'typeName') lorsque votre code doit déterminer si une valeur appartient à une classe donnée. Avec numericVar = 42 et charVar = 'Hello, MATLAB!', les appels isa(numericVar, 'double') et isa(charVar, 'char') renvoient vrai, tandis que isa(numericVar, 'single') renvoie faux. Le résultat peut directement servir de condition à une instruction if, comme dans le script ci-dessus. isa() reconnaît aussi les relations entre classes MATLAB : le résultat peut donc être vrai pour une superclasse ou une interface, même si ce nom ne correspond pas à la classe exacte de la valeur. Pour obtenir le nom de classe lui-même, utilisez class(value).

Vérifier les tableaux de caractères avec ischar() dans MATLAB

La fonction ischar() renvoie une valeur logique qui indique si son entrée est un tableau de caractères. Pour charVar = 'Hello, MATLAB!', ischar(charVar) renvoie vrai ; ischar(42) renvoie faux. Vous pouvez utiliser if ischar(value) pour choisir le traitement du texte lorsqu’une fonction attend une entrée sous forme de tableau de caractères. Les tableaux de chaînes MATLAB, écrits entre guillemets doubles, sont d’un type distinct et ne satisfont pas ce test. Cette distinction est utile lorsqu’un programme accepte à la fois des vecteurs de caractères et des valeurs de type chaîne.

Vérifier les valeurs numériques avec isnumeric() dans MATLAB

Utilisez isnumeric(value) pour tester si une valeur est de type numérique. Dans les exemples précédents, isnumeric(numericVar) renvoie vrai et isnumeric(charVar) renvoie faux. Ce prédicat inclut les classes numériques MATLAB telles que double, single et les classes entières ; il n’indique pas que la valeur acceptée est nécessairement un double. Les valeurs logiques ne sont pas considérées comme numériques par ce prédicat. Si une classe précise est requise, testez-la avec isa(value, 'double') ou obtenez son nom exact avec class(value).

Conclusion

Utilisez class() pour obtenir le nom de classe d’une valeur, whos pour examiner les variables de l’espace de travail courant, et isa(), ischar() ou isnumeric() pour produire une condition logique dans votre code. Ces outils répondent à des questions différentes : inspectez avec class() ou whos, puis choisissez le prédicat correspondant à la règle que votre programme doit appliquer.