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 sono array multidimensionali, indipendentemente dal tipo di dati. Una matrice è 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×4
1 2 3 4
Questo tipo di array è definito vettore riga.
Per creare una matrice con righe multiple, separare le righe con punti e virgole.
a = [1 3 5; 2 4 6; 7 8 10]
a = 3×3
1 3 5
2 4 6
7 8 10
Un altro metodo per creare una matrice consiste nell'utilizzare una funzione, come ones
, zeros
o rand
. Ad esempio, creare un vettore colonna 5x1 composto da zeri.
z = zeros(5,1)
z = 5×1
0
0
0
0
0
Operazioni su matrici e array
MATLAB consente di elaborare tutti i valori di una matrice utilizzando un unico operatore o funzione aritmetica.
a + 10
ans = 3×3
11 13 15
12 14 16
17 18 20
sin(a)
ans = 3×3
0.8415 0.1411 -0.9589
0.9093 -0.7568 -0.2794
0.6570 0.9894 -0.5440
Per la trasposizione di una matrice utilizzare l'apice ('
):
a'
ans = 3×3
1 2 7
3 4 8
5 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×3
1.0000 0.0000 -0.0000
0 1.0000 -0.0000
0 0.0000 1.0000
Si noti che p
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 comando format
:
format long
p = a*inv(a)
p = 3×3
0.999999999999996 0.000000000000007 -0.000000000000002
0 1.000000000000000 -0.000000000000003
0 0.000000000000014 0.999999999999995
Per ripristinare la visualizzazione al formato più breve utilizzare
format short
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×3
1 9 25
4 16 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 di a
:
a.^3
ans = 3×3
1 27 125
8 64 216
343 512 1000
Concatenazione
La concatenazione è il processo di congiunzione di array, per crearne di più grandi. In realtà il primo array è stato creato quando se ne sono concatenati i singoli elementi. L'operatore per la concatenazione è la coppia di parentesi quadre []
.
A = [a,a]
A = 3×6
1 3 5 1 3 5
2 4 6 2 4 6
7 8 10 7 8 10
La concatenazione con virgole di array disposti uno accanto all'altro è definita concatenazione orizzontale. Ogni array deve presentare lo stesso numero di righe. Analogamente, quando gli array presentano lo stesso numero di colonne, è possibile concatenare queste ultime verticalmente, utilizzando dei punti e virgole.
A = [a; a]
A = 6×3
1 3 5
2 4 6
7 8 10
1 3 5
2 4 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 utilizzare i
o j
.
c = [3+4i, 4+3j; -i, 10j]
c = 2×2 complex
3.0000 + 4.0000i 4.0000 + 3.0000i
0.0000 - 1.0000i 0.0000 +10.0000i