Hi ha diverses maneres de definir una matriu. Els següents exemples produeixen una matriu:
1 2 3 4 5 6Opció 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 5De 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 5Podem 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 20En fer
A(2, 3)
retorna 8
I si fem
A(2:4,2:3)retorna
7 8
12 13 17 18Per altra banda, en fer:
A([1,4], [2,5])produeix com a sortida
2 5
17 20D'aquesta manera també podem canviar elements concrets d'una matriu. Així si fem
A(2,3)=-8A = 1 2 3 4 5 6 7 -8 9 10 11 12 13 14 15 16 17 18 19 20on 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*bque produeix el resultat
1 2 -1Hi ha una manera ràpida i més eficient de resoldre això que és fer la divisió per l'esquerra:
XYZ = A\bObserva 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 1octave: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 2octave:3> C=[1:1:5]'C = 1 2 3 4 5octave:4> D=A+B*CD = 3 3 3 3 3 5 5 5 5 5 7 7 7 7 7 9 9 9 9 9 11 11 11 11 11octave: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 11Algunes 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.^2ans = 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400Sumem 2 a tots els elements:
A.+2ans = 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22Desem la columna 1a i 2n en dues variables:
col1 = A(:,1)col1 = 1 6 11 16col2 = A(:,2)col2 = 2 7 12 17Multipliquem 1 a 1 els elements de la 1a i la 2a columnes:
col1.*col2ans = 2 42 132 272Sumem la 1a columna a tots els elements de la taula:
A.+col1ans = 2 3 4 5 6 12 13 14 15 16 22 23 24 25 26 32 33 34 35 36