ALTE DOCUMENTE
|
||||||||||
MCIMLucrarea 11 |
Calcule cu matrice |
1.Manipularea matricelor
MATLAB-ul ofera urmatoarele functii pentru manipularea matricelor:
diag creeaza sau extrage diagonalele matricei;
fliplr roteste matricea īn jurul axei verticale (inverseaza ordinea coloanelor);
flipud roteste matricea īn jurul axai orizontale (inverseaza ordinea linilor);
reshape schimba dimensiunile matricei (redimensioneaza matricea);
rot90 roteste matricea cu un multiplu de 90 de grade;
tril extrage matricea inferior triunghiulara dintr-o matrice;
triu extrage matricea superior triunghiulara dintr-o matrice;
specifica indicii, rearanjeaza sau decupleaza o submatrice.
1.1.Extragerea submatricelor prin indici
Elementele individuale ale unei matrice se apeleaza cu numerele acesteia, urmat de doi indici, cuprinsi īntre paranteze rotunde si separati de virgula. Primul indice semnifica linia, iar al doilea coloana īn care se gaseste elementul apelat.
Pentru extragerea vectorilor cu elemente decupate din alti vectori, se folosesc formele:
j:k -selecteaza elementele [j, j+1,.., k] ale unui vector, daca j>k,vectorul rezultat este gol.
j:i:k -selecteaza elementele [j, j+i, j+2i,.., k] ale unui vector; vectorul rezultat este gol daca i>0; si j>k sau daca i<0 si j<k.
Īn cazul selectarii liniilor sau coloanelor matricelor, se folosec formele:
A(:,j) -selecteaza coloana j a matricei A;
A(i,:) -selecteaza linia i a matricei A;
A(:,:) -selecteaza īntreaga matrice A;
A(j:k) -selecteaza elementele A(j), A(j+1),., A(k) ale vectorului A;
A(:,j:k) -selecteaza toate elementele liniile si coloanele de la j la k, A(:,j),A(:,j+1),.A(:,k), ale matricei A;
A(:) -selecteaza toate elementele matricei A, privite ca o singura coloana (īncepānd cu prima).
Exemplul 1.1. Fie A =
Sa se scrie instructiunile care permit selectarea din matricea A a:
liniei a 2-a;
coloanei a 3-a;
submatricei formata din liniile 1-2 si coloanele 4-6;
submatricei formata din liniile 1,4 si coloanele 2,4,5;
Cu secventa MATLAB:
A=[1 2 3 4 5 6; 2 3 4 5 6 1; 3 4 5 6 1 2;.
4 5 6 1 2 3; 5 6 1 2 3 4; 6 1 2 3 4 5]
B=A(2,:)
C=A(:,3)
D=A(1:2,4:6)
E=A( [1,4],[2,4:5] )
Se obtin rezultatele: B=[2 3 4 5 6 1] D=
C=; E=
1.2.Rorirea matricei īn jurul unei coloane sau linii
Functiile fliplr si flipud inverseaza ordinea liniilor sau coloanelor matricelor. Practic, ele realizeaza o rotire a matricei īn jurul unei coloane sau a unei linii. Se apeleaza cu sintaxele:
Y=fliplr(X) Z=flipud(X)
Exemplul.1.2. Sa se roteasca matricea A= īn jurul unei coloanei si īn jurul unei linii.
Cu secventa MATLAB:
A=[1 2 3; 4 5 6; 7 8 9];
B=fliplr(A)
C=flipud(A)
se obtin rezultate: B= ; C=.
1.3.Rotirea matricei cu multipli de 90 de grade īn jurul unui element
Rotirea unei matrice cu multipli de 90 de grade, īn sens trigonometric (contrar sensului orar) se face cu functia rot90; se apeleaza cu una dintre sintaxele:
B=rot90(A) B=rot90(A,k)
Exemplul.1.3. Sa se roteasca īn jurul unui element, matricea A=
cu 90 de grade īn sens trigonometric si cu 180 de grade īn sens orar.
Cu secventa MATLAB:
A=[1 2 3; 4 5 6; 7 8 9];
B=rot90(A,1)
C=rot90(A,-2)
Se obtin rezultatele: B= ; C=
1.4. Matrice diagonale si triunghiulare
Creare unei matrice diagonale se face cu functia diag; se apeleaza cu una dintre sintaxele:
Y=diag (X) Y=diag(X,k)
X este vectorul sau matricea asupra careia se opereaza, iar argumentul operational k indica diagonala acestuia, cu urmatoarea semnificatie:
k=0, diagonala principala;
k>0, indica diagonala k de deasupra celei principale;
k<0, indica diagonala k de sub cea principala.
Crearea unei matrici superior si inferior triunghiulare, foloseste functiile MATLAB tril si triu, apelate cu una dintre sintaxele:
Y=tril(X) Y=tril(X,k)
Y=triu(X) Y=triu(X,k)
unde argumentele au aceeasi semnificatie ca mai sus.
|