Main Content

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

Matrici e array

MATLABè un'abbreviazione di "matrix laboratory", "laboratorio di matrici". Mentre altri linguaggi di programmazione lavorano principalmente su un numero per volta, MATLAB® consente di operare soprattutto su intere matrici e array.

Tutte le variabili di MATLAB sonoarraymultidimensionali, indipendentemente dal tipo di dati. Unamatriceè un array bidimensionale frequentemente utilizzato nell'algebra lineare.

Creazione di array

Per creare un array di quattro elementi su un'unica riga, separare gli elementi con una virgola (,) o uno spazio.

a = [1 2 3 4]
a =1×41 2 3 4

Questo tipo di array è definitovettore riga.

Per creare una matrice con righe multiple, separare le righe con punti e virgole.

a = [1 2 3; 4 5 6; 7 8 10]
a =3×31 2 3 4 5 6 7 8 10

Un altro metodo per creare una matrice consiste nell'utilizzare una funzione, comeones,zerosorand. Ad esempio, creare un vettore colonna 5x1 composto da zeri.

z = zeros(5,1)
z =5×10 0 0 0 0

Operazioni su matrici e array

MATLAB consente di elaborare tutti i valori di una matrice utilizzando un unico operatore aritmetico o funzione.

a + 10
ans =3×311 12 13 14 15 16 17 18 20
sin(a)
ans =3×30.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794 0.6570 0.9894 -0.5440

Per la trasposizione di una matrice utilizzare l'apice ('):

a'
ans =3×31 4 7 2 5 8 3 6 10

Utilizzando l'operatore*è possibile eseguire moltiplicazioni standard di matrici che calcolano i prodotti interni tra righe e colonne. Ad esempio, confermare che moltiplicando una matrice per il suo inverso si ottiene la matrice identità:

p = a*inv(a)
p =3×31.0000 0 0 0.0000 1.0000 0 0.0000 -0.0000 1.0000

Si noti chepnon è una matrice di valori interi. MATLAB memorizza i numeri come valori a virgola mobile, e le operazioni aritmetiche distinguono tra piccole differenze tra il valore reale e la sua rappresentazione con virgola mobile. È possibile visualizzare più cifre decimali con il comandoformat:

formatlongp = a*inv(a)
p =3×31.000000000000000 0 0 0.000000000000002 1.000000000000000 0 0.000000000000002 -0.000000000000004 1.000000000000000

Per riportare la visualizzazione al formato più breve utilizzare

formatshort

formatha effetto solo sulla visualizzazione dei numeri, non sul modo in cui MATLAB li calcola o li salva.

Per eseguire moltiplicazioni basate sugli elementi, non moltiplicazioni di matrici, utilizzare l'operatore.*:

p = a.*a
p =3×31 4 9 16 25 36 49 64 100

Tutti gli operatori di matrici per moltiplicazione, divisione ed elevazione a potenza presentano un corrispettivo operatore di array che opera in modo analogo. Ad esempio, elevare al cubo ciascun elemento dia:

a.^3
ans =3×31 8 27 64 125 216 343 512 1000

Concatenazione

Laconcatenazioneè il processo di congiunzione di array, per crearne di più grandi. In realtà si è creato il primo array quando se ne sono concatenati i singoli elementi. L'operatore per la concatenazione è la coppia di parentesi quadre[].

一个= [a,a]
一个=3×61 2 3 1 2 3 4 5 6 4 5 6 7 8 10 7 8 10

La concatenazione con virgole di array disposti uno accanto all'altro è definita concatenazioneorizzontale. Ogni array deve presentare lo stesso numero di righe. Analogamente, quando gli array presentano lo stesso numero di colonne, è possibile concatenare queste ultimeverticalmente, utilizzando dei punti e virgole.

一个= [a; a]
一个=6×31 2 3 4 5 6 7 8 10 1 2 3 4 5 6 7 8 10

Numeri complessi

I numeri complessi comprendono sia parti reali che parti immaginarie, in cui l'unità immaginaria è costituita dalla radice quadrata di-1.

sqrt(-1)
ans = 0.0000 + 1.0000i

Per rappresentare la parte immaginaria dei numeri complessi utilizzareioj.

c = [3+4i, 4+3j; -i, 10j]
c =2×2 complex3.0000 + 4.0000i 4.0000 + 3.0000i 0.0000 - 1.0000i 0.0000 +10.0000i