Matrici in Octave

Da Wikiversità, l'apprendimento libero.
Matrici in Octave


Analisi numerica > Matrici in Octave

lezione
lezione
Matrici in Octave
Tipo di risorsa Tipo: lezione
Materia di appartenenza Materia: Analisi numerica

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