Hi ha diverses maneres de definir una matriu. Els següents exemples produeixen una matriu:
1 2 3
4 5 6
Opció 1. Introduir la matrius per files
A = [1, 2, 3; 4, 5, 6]
en aquest cas fem servir la coma per separar les columnes i el punt i coma per separar les files. Per separar les columnes també podem fer servir l'espai. És a dir, la línia anterior és equivalent a:
A=[1 2 3; 4 5 6]
Opció 2. Introduir la matriu per columnes
A=[[1; 4], [2; 5], [3; 6]]
Opció 3
fila1 = [1, 2, 3]
fila2 = [4, 5, 6]
A = [fila1; fila2]
Opció 4
col1 = [1; 4]
col2 = [2; 5]
col3 = [3; 6]
A = [col1, col2, col3]
Amb les funcions zeros(files, columnes)
i ones(files, columnes)
podem definir matrius plenes de 0 o 1, segons el cas, amb el nombre de files i columnes indicats com a paràmetres. Per exemple:
matriuNulla3x3 = zeros(3, 3)
matriuUns5x3 = ones (5, 3)
La matriu identitat (tot 0 excepte 1 a la diagonal principal) es defineix amb la funció eye(files, columnes)
. Per exemple, la identitat 3x3 es pot definir com:
identitat3x3 = eye(3, 3)
També podem definir una matriu diagonal que contingui a la diagonal principal els valors d'un vector fila. Això ho farem amb la funció diag(vector)
. Per exemple:
v = [2, 3, 4, 5]
matriuDiagonal = diag(v)
produeix:
2 0 0 0
0 3 0 0
0 0 4 0
0 0 0 5
De manera inversa podríem obtenir la diagonal principal d'una matriu fent diag(matriu)
. Seguint amb el cas anterior:
u = diag(matriuDiagonal )
retornarà
2
3
4
5
Podem accedir a l'element i,j d'una matriu com nomMatriu(i, j)
. També podem accedir a subrangs d'una matriu amb nomMatriu(rangFiles, rangColumnes)
. Vegem-ho amb exemples:
Sigui A la matriu:
A = [1:5;6:10;11:15;16:20]
A =
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
En fer
A(2, 3)
retorna 8
I si fem
A(2:4,2:3)
retorna
7 8
12 13
17 18
Per altra banda, en fer:
A([1,4], [2,5])
produeix com a sortida
2 5
17 20
D'aquesta manera també podem canviar elements concrets d'una matriu. Així si fem
A(2,3)=-8
A =
1 2 3 4 5
6 7 -8 9 10
11 12 13 14 15
16 17 18 19 20
on hem canviat l'element de la 2a fila i 3a columna per -8.
Per obtenir la 2a columna farem
A(:,2)
i per obtenir la 3a fila farem
A(3,:)
Per obtenir la 2a i la 3a columnes farem
A(:,[2,3])
Les operacions amb matrius són la suma (+
), resta (-), multiplicació (*
), multiplicació per escalars (*
), transposició ('
), potència (^
), divisió per la dreta (/
) i divisió per l'esquerra (\
) Només cal tenir en compte les dimensions de les matrius per poder fer les operacions.
Si volem resoldre el sistema:
2x+3y+z=7
x+y+z=2
x+2y-z=6
Podríem fer:
A=[2, 3, 1; 1, 1, 1; 1, 2, -1]
b=[7; 2; 6]
XYZ = A^-1*b
que produeix el resultat
1
2
-1
Hi ha una manera ràpida i més eficient de resoldre això que és fer la divisió per l'esquerra:
XYZ = A\b
Observa el següents exemple:
octave:1> A=ones(5, 5)
A =
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
octave:2> B=2*eye(5)
B =
Diagonal Matrix
2 0 0 0 0
0 2 0 0 0
0 0 2 0 0
0 0 0 2 0
0 0 0 0 2
octave:3> C=[1:1:5]'
C =
1
2
3
4
5
octave:4> D=A+B*C
D =
3 3 3 3 3
5 5 5 5 5
7 7 7 7 7
9 9 9 9 9
11 11 11 11 11
octave:5> D(1:2,1:3)=zeros(2,3)
D =
0 0 0 3 3
0 0 0 5 5
7 7 7 7 7
9 9 9 9 9
11 11 11 11 11
Algunes funcions bàsiques:
det(A)
retorna el determinant d'A
.inv(A)
retorna la matriu inversa d'A
.rank(A)
retorna el rang d'A
.rref(A)
retorna la transformació de Gauss-Jordan d'A
.size(M)
retorna la mida del vector o matriu M
com un vector fila on la 1a dada representa les files i la segona les columnes del vector.sum(M)
retorna una matriu fila on cada columna és la suma de les files d'A
.Amb els operadors .+
, .-
, .*
, ./
, .\
i.^
podem fer operacions element a element dins una matriu. Vegem-ho amb alguns exemples:
A = [1:5;6:10;11:15;16:20]
Elevem al quadrat tots els elements de la taula:
A.^2
ans =
1 4 9 16 25
36 49 64 81 100
121 144 169 196 225
256 289 324 361 400
Sumem 2 a tots els elements:
A.+2
ans =
3 4 5 6 7
8 9 10 11 12
13 14 15 16 17
18 19 20 21 22
Desem la columna 1a i 2n en dues variables:
col1 = A(:,1)
col1 =
1
6
11
16
col2 = A(:,2)
col2 =
2
7
12
17
Multipliquem 1 a 1 els elements de la 1a i la 2a columnes:
col1.*col2
ans =
2
42
132
272
Sumem la 1a columna a tots els elements de la taula:
A.+col1
ans =
2 3 4 5 6
12 13 14 15 16
22 23 24 25 26
32 33 34 35 36