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