Matrici in Octave
Analisi numerica > Matrici in Octave
Creazione di matrici
[modifica]Per creare una matrice quadrata di nove elementi in Octave inseriamo gli elementi tra parentesi quadre:
octave:1> A = [1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9
Gli spazi definiscono la separazione tra colonne ed i punti e vergola la separazione tra le righe. Ovviamente è possibile creare matrici rettangolare, per esempio
octave:2> B = [1 2 3; 4 5 6] B = 1 2 3 4 5 6
Possiamo facilmente trovare la trasposta ( o ) con
octave:4> A = [1 2 3; 4 5 6; 7 8 9]' A = 1 4 7 2 5 8 3 6 9 octave:5> B' ans = 1 4 2 5 3 6
Comandi utili per la creazione di matrici
[modifica]Talvolta può risultare utile creare matrici di zeri, solo per allocare memoria e velocizzare le simulazioni. Se volessimo creare un matrice , con abbiamo per esempio:
octave:6> B = zeros (3,2) B = 0 0 0 0 0 0
Se si volesse invece creare una matrice di
octave:7> A = ones (3,3) A = 1 1 1 1 1 1 1 1 1
Per creare la matrice identità si usa il comando
octave:4> I = eye (3,3) I = Diagonal Matrix 1 0 0 0 1 0 0 0 1 octave:5> B = eye (3,2) B = Diagonal Matrix 1 0 0 1 0 0
Operazioni tra Matrici
[modifica]Valgono le normali regole tra matrici. Quindi è importante conoscere le dimensioni delle matrici su cui vogliamo operare
octave:6> size (A) ans = 3 3 octave:7> size (B) ans = 3 2
La somma è possibile se e solo se le due matrici e appartengono allo stesso spazio , cioè hanno le stesse dimensioni.
octave:8> A + B error: operator +: nonconformant arguments (op1 is 3x3, op2 is 3x2) octave:9> C = A + [0 1 2; 3 4 5; 6 7 8] C = 1 2 3 4 5 6 7 8 9
Seguendo invece le regole per la moltiplicazione si ha che se e il prodotto è possibile solo se
octave:10> D = B * A error: operator *: nonconformant arguments (op1 is 3x2, op2 is 3x3) octave:11> D = C * B D = 1 2 4 5 7 8
L'operazione di moltiplicazione tra i corrispettivi elementi di due matrici è possibile tramite l'operatore "."
octave:16> D = A.* C D = 1 2 3 4 5 6 7 8 9
Accesso agli elementi di una matrice
[modifica]Definita la matrice utilizziamo le parentesi tonde per accedere ad un elemento:
octave:17> D22 = D (2,2) D22 = 5
Per vedere solo una colonna od una riga utilizziamo l'operatore ":"
octave:18> riga2 = D (2,:) riga2 = 4 5 6 octave:19> colonna3 = D (:,3) colonna3 = 3 6 9
Se vogliamo vedere, per esempio, due colonne scriviamo
octave:20> colonne1e3 = D (:,[1 3]) colonne1e3 = 1 3 4 6 7 9
Se invece vogliamo estrarre una sottomatrice possiamo, per esempio, utilizzare la seguente espressione
octave:21> sottomatrice = D (2:end,1:2) sottomatrice = 4 5 7 8