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.
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
,zeros
orand
. Ad esempio, creare un vettore colonna 5x1 composto da zeri.
z = zeros(5,1)
z =5×10 0 0 0 0
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 chep
non è 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
format
ha 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
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
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 utilizzarei
oj
.
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