HOWTO · MATLAB

Come controllare il tipo di una variabile in MATLAB

Scopri come identificare la classe di un valore, esaminare le variabili nell'area di lavoro e verificare condizioni di tipo in MATLAB.

In questa pagina

Per controllare un valore in MATLAB, usa class() per ottenere il nome della sua classe, whos per esaminare le variabili nell’area di lavoro corrente e predicati come isa(), ischar() o isnumeric() per ottenere un risultato logico da usare in una condizione. Scegli il metodo in base a ciò che ti serve: identificare un singolo valore, rivedere le variabili dell’area di lavoro oppure guidare un ramo del programma.

Controllare la classe di una variabile con class() in MATLAB

La funzione class() restituisce un vettore di caratteri che indica la classe di un valore. Per esempio, MATLAB interpreta il valore numerico letterale 42 come double e il testo tra apici singoli 'Hello, MATLAB!' come un array di caratteri di classe char. Questo script compatibile con Octave mostra l’ispezione e i predicati in un unico flusso di lavoro.

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.

In MATLAB, usa class(value) quando ti serve conoscere il nome effettivo della classe. La chiamata restituisce informazioni su un solo valore, senza elencare le variabili dell’area di lavoro.

Esaminare i tipi delle variabili con il comando whos in MATLAB

Il comando whos riepiloga le variabili nell’area di lavoro corrente, indicando nomi, dimensioni, numero di byte, classi e attributi. Digita whos per visualizzare l’elenco dell’area di lavoro oppure usa whos numericVar per esaminare una variabile specifica. La colonna della classe è utile per confrontare più valori in un colpo d’occhio. La visualizzazione è limitata alle variabili accessibili nell’area di lavoro o nell’ambito corrente: non può esaminare un’espressione arbitraria che non sia stata assegnata a una variabile. Per rispondere a una domanda su un singolo valore, usa class(espressione).

Verificare una classe specifica con isa() in MATLAB

Usa isa(value, 'typeName') quando il codice deve verificare se un valore appartiene a una determinata classe. Con numericVar = 42 e charVar = 'Hello, MATLAB!', le chiamate isa(numericVar, 'double') e isa(charVar, 'char') restituiscono valore logico true, mentre isa(numericVar, 'single') restituisce false. Il risultato può essere usato direttamente in un’istruzione if, come nello script precedente. isa() riconosce anche le relazioni tra classi di MATLAB: può quindi restituire true per una superclasse o un’interfaccia anche se non corrisponde alla classe esatta del valore. Per ottenere il nome della classe, usa class(value).

Verificare gli array di caratteri con ischar() in MATLAB

La funzione ischar() restituisce un valore logico che indica se l’input è un array di caratteri. Per charVar = 'Hello, MATLAB!', ischar(charVar) restituisce true; ischar(42) restituisce false. Puoi usare if ischar(value) per scegliere la gestione del testo quando una funzione richiede un input di tipo array di caratteri. Gli array di stringhe di MATLAB, scritti con le virgolette doppie, sono un tipo distinto e non superano questo controllo. La distinzione è utile quando un programma accetta sia vettori di caratteri sia valori stringa.

Verificare i valori numerici con isnumeric() in MATLAB

Usa isnumeric(value) per verificare se un valore appartiene a un tipo numerico. Negli esempi precedenti, isnumeric(numericVar) restituisce true e isnumeric(charVar) restituisce false. Il predicato include classi numeriche di MATLAB come double, single e le classi intere; non indica però che il valore accettato sia necessariamente un double. I valori logici non sono considerati numerici da questo predicato. Se ti serve una classe specifica, verificane l’appartenenza con isa(value, 'double') oppure leggi il nome esatto con class(value).

Conclusione

Usa class() per ottenere il nome della classe di un singolo valore, whos per esaminare le variabili nell’area di lavoro corrente e isa(), ischar() o isnumeric() per ottenere una condizione logica da usare nel codice. Questi strumenti rispondono a domande diverse: per ispezionare usa class() o whos; per verificare una condizione scegli il predicato adatto al requisito che il programma deve imporre.