MATLAB - Tipi di dati
MATLAB non richiede alcuna dichiarazione di tipo o dichiarazioni di dimensione. Ogni volta che MATLAB incontra un nuovo nome di variabile, crea la variabile e alloca lo spazio di memoria appropriato.
Se la variabile esiste già, MATLAB sostituisce il contenuto originale con nuovo contenuto e alloca nuovo spazio di archiviazione, se necessario.
Per esempio,
Total = 42
L'istruzione precedente crea una matrice 1 per 1 denominata "Totale" e memorizza il valore 42 in essa.
Tipi di dati disponibili in MATLAB
MATLAB fornisce 15 tipi di dati fondamentali. Ogni tipo di dati memorizza i dati sotto forma di una matrice o di un array. La dimensione di questa matrice o matrice è un minimo di 0 per 0 e può crescere fino a una matrice o matrice di qualsiasi dimensione.
La tabella seguente mostra i tipi di dati più comunemente usati in MATLAB:
Sr.No. | Tipo di dati e descrizione |
---|---|
1 | int8 Intero con segno a 8 bit |
2 | uint8 Intero senza segno a 8 bit |
3 | int16 Intero con segno a 16 bit |
4 | uint16 Intero senza segno a 16 bit |
5 | int32 Intero con segno a 32 bit |
6 | uint32 Intero senza segno a 32 bit |
7 | int64 Intero con segno a 64 bit |
8 | uint64 Intero senza segno a 64 bit |
9 | single dati numerici a precisione singola |
10 | double dati numerici a doppia precisione |
11 | logical i valori logici di 1 o 0 rappresentano rispettivamente vero e falso |
12 | char dati di carattere (le stringhe vengono memorizzate come vettore di caratteri) |
13 | cell array matrice di celle indicizzate, ciascuna in grado di memorizzare una matrice di dimensioni e tipo di dati diversi |
14 | structure Strutture tipo C, ciascuna struttura con campi denominati in grado di memorizzare un array di dimensioni e tipi di dati diversi |
15 | function handle puntatore a una funzione |
16 | user classes oggetti costruiti da una classe definita dall'utente |
17 | java classes oggetti costruiti da una classe Java |
Esempio
Crea un file di script con il codice seguente:
str = 'Hello World!'
n = 2345
d = double(n)
un = uint32(789.50)
rn = 5678.92347
c = int32(rn)
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
str = Hello World!
n = 2345
d = 2345
un = 790
rn = 5678.9
c = 5679
Conversione del tipo di dati
MATLAB fornisce varie funzioni per la conversione, un valore da un tipo di dati a un altro. La tabella seguente mostra le funzioni di conversione del tipo di dati:
Funzione | Scopo |
---|---|
char | Converti in matrice di caratteri (stringa) |
int2str | Converti i dati interi in una stringa |
mat2str | Converti matrice in stringa |
num2str | Converti numero in stringa |
str2double | Converti una stringa in un valore a doppia precisione |
str2num | Converti stringa in numero |
native2unicode | Converti byte numerici in caratteri Unicode |
unicode2native | Converti caratteri Unicode in byte numerici |
base2dec | Converte la stringa del numero di base N in un numero decimale |
bin2dec | Converte la stringa di un numero binario in un numero decimale |
dec2base | Converte il numero decimale in base N nella stringa |
dec2bin | Converte un numero decimale in binario in stringa |
dec2hex | Converte un numero decimale in esadecimale in stringa |
hex2dec | Converte una stringa di numeri esadecimali in un numero decimale |
hex2num | Converte una stringa di numeri esadecimali in un numero a doppia precisione |
num2hex | Converti singoli e doppi in stringhe esadecimali IEEE |
cell2mat | Converti array di celle in array numerici |
cell2struct | Converti array di celle in array di strutture |
cellstr | Crea una matrice di celle di stringhe dalla matrice di caratteri |
mat2cell | Converti array in array di celle con celle di dimensioni potenzialmente diverse |
num2cell | Converti array in array di celle con celle di dimensioni coerenti |
struct2cell | Converti la struttura in array di celle |
Determinazione dei tipi di dati
MATLAB fornisce varie funzioni per identificare il tipo di dati di una variabile.
La tabella seguente fornisce le funzioni per determinare il tipo di dati di una variabile:
Funzione | Scopo |
---|---|
è | Rileva stato |
è un | Determina se l'input è oggetto della classe specificata |
iscell | Determina se l'input è un array di celle |
iscellstr | Determina se l'input è un array di celle di stringhe |
ischar | Determina se l'elemento è un array di caratteri |
isfield | Determina se l'input è un campo array della struttura |
isfloat | Determina se l'input è un array a virgola mobile |
ishghandle | Vero per le maniglie degli oggetti Handle Graphics |
isinteger | Determina se l'input è un array intero |
isjava | Determina se l'input è un oggetto Java |
islogico | Determina se l'input è un array logico |
isnumeric | Determina se l'input è un array numerico |
isobject | Determina se l'input è un oggetto MATLAB |
è reale | Controlla se l'input è un array reale |
isscalar | Determina se l'input è scalare |
isstr | Determina se l'input è un array di caratteri |
isstruct | Determina se l'input è un array di strutture |
isvector | Determina se l'input è vettoriale |
classe | Determina la classe dell'oggetto |
validateattributes | Verifica la validità dell'array |
chi | Elenca le variabili nello spazio di lavoro, con dimensioni e tipi |
Esempio
Crea un file di script con il codice seguente:
x = 3
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
x = 23.54
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
x = [1 2 3]
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
x = 'Hello'
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
Quando esegui il file, produce il seguente risultato:
x = 3
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x = 23.540
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x =
1 2 3
ans = 0
ans = 1
ans = 1
ans = 0
x = Hello
ans = 0
ans = 0
ans = 1
ans = 0
ans = 0