Documente Academic
Documente Profesional
Documente Cultură
CURS 5
Exemple:
a=1:3:15
b=1:15
c=14:-2:4
d=linspace(17,58,4)
e=linspace(pi,-pi,6)
f=linspace(3,200)
3. Matricea goală
Sintaxa:
X=[] – generează matricea goală (fără nici un element)
Exemplu:
X=[]
X =
[]
4. Matricea unitate
Sintaxe:
1. ones(n) returnează o matrice de dimensiune n x n cu toate elementele egale cu 1.
2. ones(m,n) returnează o matrice de dimensiune m x n cu toate elementele egale cu 1.
3. ones(size(M)) returnează o matrice de dimensiunea matricei M cu toate elementele egale cu
1.
Exemple:
ones(3)
ones(1,5)
ones(5,1)
ones(3,2)
D=[1 5 7; 3 6 8];
ones(size(D))
5. Matricea zero
Sintaxe:
1. zeros(n) returnează o matrice de dimensiune n x n cu toate elementele egale cu 0.
2. zeros(m,n) returnează o matrice de dimensiune m x n cu toate elementele egale cu 0.
3. zeros(size(M)) returnează o matrice de dimensiunea matricei M cu toate elementele egale cu
0.
Exemple:
zeros(3)
zeros(1,5)
zeros(5,1)
zeros(3,2)
D=[1 5 7; 3 6 8]; zeros(size(D))
Software de analiza numerica si simbolica 3
6. Matricea identitate
Sintaxe:
1. eye(n) returnează o matrice identitate de dimensiune n x n.
2. eye(m,n) returnează o matrice de dimensiune m x n având elementele primei diagonale egale
cu 1, iar restul elementelor egale cu 0.
3. eye(size(M)) returnează o matrice de dimensiune egală cu dimensiunea matricei M, având
elementele primei diagonale egale cu 1, iar restul elementelor egale cu 0.
Exemple:
eye(3)
eye(2,3)
eye(3,2)
D=[1 5 7; 3 6 8];
eye(size(D))
Exemple:
rand(3)
rand(1,5)
rand(5,1)
rand(3,2)
r=3+(5-3)*rand(1,100)%generare a 100 numere aleatoare cu distributie
uniforma in intervalul (3,5).
Software de analiza numerica si simbolica 4
Exemple:
randn(3)
randn(1,5)
randn(5,1)
Software de analiza numerica si simbolica 5
randn(3,2)
D=[1 5 7; 3 6 8];
randn(size(D))
r=1+2*randn(1,200)%generare a 200 de valori aleatoare cu distributie
normala cu media 1 si abaterea medie patratica 2)
De menționat că la orice altă apelare a instrucțiunilor rand și randn, se obțin matrice cu alte numere
aleatoare. În cazul simulării experiențelor care impun aceleași condiții, se generează serii de numere
aleatoare identice, la care se controlează parametrul de inițializare al generatorului, notat seed
(sămânță), prin instrucțiunile rand('seed',n) sau randn('seed',n), unde n este valoarea atribuită
lui seed (n este un număr întreg cuprins între 0 și 232–1), după care se generează valorile aleatoare
Exemple: obținerea la orice apelare a aceeași matrice de numere aleatoare cu distribuție uniformă
rand('seed',567893);
rand(4)
randn('seed',567893);
randn(4)
MANIPULAREA MATRICELOR
MATLAB-ul oferă următoarele funcții pentru manipularea matricelor:
A =
2 4 7 3
5 1 0 4
7 4 8 9
A(3,3)=A(1,3)+A(3,1)
A =
2 4 7 3
5 1 0 4
7 4 14 9
Crearea vectorilor și matricelor mari, precum și manipularea acestora se face cu multă flexibilitate dacă
se utilizează indici de tip vector.
Pentru extragerea vectorilor cu elemente decupate din alți vectori, se folosesc formele:
a(j:k) selectează elementele [j,j+1,...,k] ale vectorului; dacă j>k, vectorul rezultat
este gol;
a(j:i:k) selectează elementele [j,j+i,j+2i,...,k] ale vectorului; vectorul rezultat
este gol dacă i>0 și j>k sau dacă i<0 și j<k.
Exemplu: extragerea elementelor 3:7 din vectorul a
a=[2 6 4 8 3 7 1 0 6]
b=a(3:7)
b =
4 8 3 7 1
Pentru extragerea submatricelor cu elemente decupate din alte matrice, se folosesc formele:
A(:,j) selectează coloana j a matricei A;
A(i,:) selectează linia i a matricei A;
A(:,:) selectează întreaga matrice A;
A(:,j:k) selectează toate liniile și coloanele de la j la k (A(:,j),A(:,j+1),...,A(:,k))
ale matricei A;
A(j:k,:) selectează liniile de la j la k și toate coloanele (A(j,:),A(j+1,:),...,A(k,:))
ale matricei A;
A(:) selectează toate elementele matricei A, privite ca o singură coloană, începând cu
prima.
Software de analiza numerica si simbolica 7
În general, dacă indicii x și y sunt vectori cu componente întregi, atunci instrucțiunea N=M(x,y)
creează o submatrice N, care conține elementele din liniile x ale coloanelor y ale matricei M.
Exemplu: extragerea submatricei B de dimensiunea 3 x 3, constând din elementele liniilor 1:3 ale
coloanelor 2:4 ale matricei A
A=[2 4 7 3;5 1 0 4;7 4 8 9]
A =
2 4 7 3
5 1 0 4
7 4 8 9
B=A(1:3,2:4)
B =
4 7 3
1 0 4
4 8 9
Exemplu: extragerea din matricea A a submatricei C de dimensiunea 3 x 1 care conține toate liniile din
coloana a 3-a
A=[2 4 7 3;5 1 0 4;7 4 8 9]
A =
2 4 7 3
5 1 0 4
7 4 8 9
C=A(:,3)
C =
7
0
8
Exemplu: extragerea sub-matricei D de dimensiunea 2 x 4 care conține liniile 1:2 ale tuturor
coloanelor matricei A
A=[2 4 7 3;5 1 0 4;7 4 8 9]
A =
2 4 7 3
5 1 0 4
7 4 8 9
D=A(1:2,:)
D =
2 4 7 3
5 1 0 4
Software de analiza numerica si simbolica 8
Exemplu: înlocuirea coloanele 1,3 și 4 ale matricei A, cu coloanele 1:3 ale matricei E
A=[2 4 7 3;5 1 0 4;7 4 8 9]
A =
2 4 7 3
5 1 0 4
7 4 8 9
E=[4 7 2 6;7 3 5 6;9 4 7 3]
E =
4 7 2 6
7 3 5 6
9 4 7 3
A(:,[1,3,4])=E(:,1:3)
A =
4 4 7 2
7 1 3 5
9 4 4 7
Exemplu: inversarea coloanelor unei matrice A se face cu formula A(:,n:-1:1), unde n reprezintă
numărul de coloane.
A=[2 4 7 3;5 1 0 4;7 4 8 9]
Software de analiza numerica si simbolica 9
A =
2 4 7 3
5 1 0 4
7 4 8 9
F=A(:,size(A,2):-1:1)
F =
3 7 4 2
4 0 1 5
9 8 4 7
Exemplu: inversarea liniilor unei matrice A se face cu formula A(n:-1:1,:), unde n reprezintă numărul
de linii
G=A(size(A,1):-1:1,:)
G =
7 4 8 9
5 1 0 4
2 4 7 3
Observație: funcția size(M) returnează dimensiunea unei matrice, prima valoare returnată reprezintă
numărul de linii, iar a doua numărul de coloane
Elementele matricei Y vor fi în ordinea succesivă a coloanelor și pe fiecare coloană de sus în jos a
elementele matricei argument X (citite de sus în jos și de la stânga la dreapta).
Exemplu: redimensionarea matricei A cu dimensiunea 3 x 4 într-o matrice cu dimensiunea 2 x 6.
A=[2 4 7 3;5 1 0 4;7 4 8 9]
A =
2 4 7 3
5 1 0 4
7 4 8 9
I=reshape(A,2,6)
I =
2 7 1 7 8 4
5 4 4 0 3 9
Software de analiza numerica si simbolica 10
fliplr(X) returnează matricea rezultată prin pivotarea matricei argument în jurul ultimei coloane,
operație prin care aceasta devine prima coloană.
flipud(X) returnează matricea rezultată prin pivotarea matricei argument în jurul ultimei linii,
operație prin care aceasta devine prima linie.
Exemplu: rotirea matricei A:
A=[2 4 7 3;5 1 0 4;7 4 8 9]
A =
2 4 7 3
5 1 0 4
7 4 8 9
Argumentul opțional k reprezintă multiplul de 90 de grade cu care se face rotația: pozitiv pentru sens
trigonometric și negativ pentru cel orar.
Software de analiza numerica si simbolica 11
diag(a)
diag(a,1)
diag(a,-1)
diag(a,2)
diag(a,-2)
diag(A)
diag(A,2)
diag(A,-2)
diag(diag(A))
triu(M,k): înlocuiește cu 0 toate elementele de sub diagonala k din matricea M (raportarea se face la
diagonala principală – vezi sintaxa de la diag).
Exemple:
A=randn(5)
triu(A)
triu(A,1)
triu(A,-1)
Software de analiza numerica si simbolica 13
Bibliografie
1. ***, Fundamente de Matlab, telecom.etti.tuiasi.ro/
2. Iulian Lupea, Curs Matlab
3. Nicoleta Breaz ș.a., Modelarea matematică prin Matlab
4. ***, MATLAB User’s Guide, The Mathworks Inc., SUA