Professional Documents
Culture Documents
INTRODUCERE N MATLAB
LUCRAREA 1
INTRODUCERE N MATLAB
1.1. Introducere
MATLAB este un pachet de programe dedicat calcului numeric i
reprezentrilor grafice. Elementul de baz cu care opereaz este matricea, de aici
provenind i numele su: MATrix LABoratory. Resursele sale de calcul i
reprezentare grafic sunt bogate, permind operaii matematice fundamentale,
analiza datelor, programare, reprezentri grafice 2D i 3D, realizarea de interfee
grafice etc. Din punct de vedere al construciei sale, MATLAB este alctuit
dintr-un nucleu de baz n jurul cruia sunt grupate TOOLBOX-urile. Acestea
reprezint nite aplicaii specifice, fiind de fapt colecii extinse de funcii
MATLAB care dezvolt mediul de programare de la o versiune la alta, pentru a
rezolva probleme din diverse domenii. n prelucrarea numeric a semnalelor cel
mai des utilizat este toolbox-ul SIGNAL PROCESSING.
1. INTRODUCERE N MATLAB
x =
3.1416
format long
x
x =
3.14159265358979
S se verifice i celelalte tipuri de format folosind aceeai valoare x.
clear terge din memorie una sau mai multe variabile.
Sintaxe:
clear v terge din memorie variabila v.
clear v1 v2 terge din memorie variabilele v1 i v2 (sintaxa e
valabil pentru oricte variabile).
clear terge din memorie toate variabilele definite pn n acel moment.
lookfor listeaz toate numele de fiiere care au n prima linie a help-ului
cuvintele menionate ca argument, precum i prima linie din help.
2
1. INTRODUCERE N MATLAB
Sintax:
lookfor cuvnt listeaz toate numele de fiiere care conin n prima
linie a help-ului cuvnt, precum i prima linie din help.
Exemplu:
lookfor ifft listeaz toate numele de fiiere care conin n prima linie
a help-ului ifft, precum i prima linie din help.
dir afieaz numele tuturor fiierelor din directorul curent sau din orice alt
director precizat ca argument.
Sintaxe:
dir afieaz numele tuturor fiierelor din directorul curent.
dir nume afieaz numele tuturor fiierelor din directorul nume.
cd returneaz numele directorului curent sau schimb directorul de lucru.
Sintaxe:
cd returneaz numele directorului curent.
cd c:\matlab\nume_director schimb directorul de lucru n
nume_director (presupunnd c MATLAB este instalat pe c:\).
Atenie: Un anumit program MATLAB aflat ntr-un anumit director nu poate fi
rulat dect dac directorul respectiv este directorul de lucru.
ans =
// nu s-a alocat nici un nume
3
x=2
x =
// s-a alocat numele x
2
pi valoarea .
Inf reprezentarea lui +.
NaN reprezentarea lui 0/0 sau /.
1. INTRODUCERE N MATLAB
Atenie:
- dac dup o linie de comand urmeaz semnul ; atunci rezultatul nu va
mai fi afiat (excepie fac comenzile grafice);
- dac n faa unei linii de comand se pune semnul % atunci se face
abstracie de linia respectiv (este interpret ca o linie de comentariu);
- dac se dorete continuarea unei instruciuni pe linia urmtoare se folosesc
urmate de enter;
Verificai urmtoarele exemple (se va tasta direct n fereastra de comenzi):
p=pi;
// nu se va afia valoarea p (dar exist n memorie)
q=pi/2
// va afia valoarea q
%r=pi/4
// nu se ia n considerare aceast linie
v=r/2
// va rezulta o eroare deoarece nu l cunoate pe r
s=1+2+3+... enter
4+5+6
// instruciunea se continu i pe linia urmtoare
1.2.3. Matricea element de baz n MATLAB
MATLAB lucreaz numai cu un singur tip de obiecte i anume matrice
numerice, avnd elemente reale sau complexe. Astfel scalarii sunt privii ca
matrice de dimensiune 1 x 1, iar vectorii ca matrice de dimensiune 1 x n (dac
este vector linie) sau n x 1 (dac este vector coloan).
Reguli privind modul de definire a matricelor:
- elementele matricei sunt cuprinse ntre paranteze drepte [ ]
- elementele unei linii se separ prin pauz (blanc) sau virgul
- liniile matricei se separ prin ; sau enter.
1 2 3
1
i vectorii B = (7 8 9 ) , C =
Exemplu: Fie matricea A =
4 5 6
2
A=[1,2,3;4,5,6]
A =
1
2
3
4
5
6
A=[1 2 3;4 5 6]
A =
1
2
3
4
5
6
A=[1 2 3 enter
4 5 6]
A =
1
2
3
4
5
6
B=[7 8 9]
B =
7
8
9
4
1. INTRODUCERE N MATLAB
C=[-1;-2]
C =
-1
-2
Pentru o matrice M:
- M(i,j) reprezint elementul din matricea M corespunztor liniei i i
coloanei j
- M(i) reprezint elementul i din matrice, numrarea elementelor fcndu-se
pe coloane.
Pentru un vector v:
- v(i) reprezint elementul de pe poziia i din vector.
Exemplu: Pentru A, B, C definite anterior verificai:
A(2,3)
ans =
6
A(4)
B(2)
C(2)
ans =
5
ans =
8
ans =
-2
A =
1
2
3
4
5
0
A(3,3)=-3
A =
1
2
3
4
5
0
0
0
-3
C(3)=6
C =
-1
-2
6
Se pot construi matrice de dimensiuni mai mari pornind de la matrice de
dimensiuni mai reduse. Pentru exemplificare vom folosi matricea A i vectorii B
i C n ultima lor form (A 3 x 3, B 1 x 3, C 3 x 1):
5
1. INTRODUCERE N MATLAB
D=[A;B]
D =
1
2
3
4
5
0
0
0
-3
7
8
9
// s-a construit matricea D de dimensiune 4 x 3, prin adugarea vectorului B la
matricea A (ca ultim linie).
Atenie: A i B au acelai numr de coloane (3) pentru a fi posibil construcia.
E=[A,C]
E =
1
2
3
-1
4
5
0
-2
0
0
-3
6
// s-a construit matricea E de dimensiune 3 x 4, prin adugarea vectorului C la
matricea A (ca ultim coloan).
Atenie: A i C au acelai numr de linii (3) pentru a fi posibil construcia.
Dac v este un vector atunci:
v(i:k) selecteaz elementele de pe poziiile i, i + 1, i + 2, , k ale
vectorului v; dac i > k atunci vectorul rezultat este gol (nu are nici un
element).
v(i:j:k) selecteaz elementele de pe poziiile i, i + j, i + 2j, pn la
k, ale vectorului v (selecteaz cu pasul j); dac j > 0 i i > k sau j < 0 i i < k
atunci vectorul rezultat este gol.
v([i,j,k]) selecteaz elementele de pe poziiile i, j i k.
v(:) dac vectorul este linie atunci el devine coloan; dac vectorul este
coloan atunci el rmne nemodificat.
Dac M este o matrice atunci:
M(:,j) selecteaz coloana j a matricei M.
M(i,:) selecteaz linia i a matricei M.
M(:,i:j) selecteaz coloanele de la i la j ale matricei M.
M(i:j,:) selecteaz liniile de la i la j ale matricei M.
M(:,i:j:k) selecteaz coloanele i, i + j, i + 2j , pn la k ale matricei
M (selecteaz cu pasul j).
M(i:j:k,:) selecteaz liniile i, i + j, i + 2j , pn la k ale matricei M.
M(i:j,k:l) extrage submatricea format cu elementele aflate la
intersecia liniilor de la i la j i coloanelor de la k la l ale matricei M.
M(:,[i,j,k]) selecteaz coloanele i, j i k ale matricei M.
M([i,j,k],:) selecteaz liniile i, j i k ale matricei M.
6
1. INTRODUCERE N MATLAB
1. INTRODUCERE N MATLAB
x =
[]
1. INTRODUCERE N MATLAB
1. INTRODUCERE N MATLAB
1. INTRODUCERE N MATLAB
11
1. INTRODUCERE N MATLAB
1. INTRODUCERE N MATLAB
- if expresie
instruciuni_1
else
instruciuni_2
end
// dac expresie este adevrat se execut instruciuni_1;
dac expresie este fals se execut instruciuni_2.
- if expresie_1
instruciuni_1
elseif expresie_2
instruciuni_2
end
// dac expresie_1 este adevrat se execut instruciuni_1;
dac expresie_1 este fals i expresie_2 este adevrat se execut
instruciuni_2.
for Repetarea unui numr de instruciuni de un anumit numr de ori
Sintax:
- for index=iniial:pas:final
instruciuni
end
// pentru index parcurgnd intervalul de la iniial la final cu pasul
pas se execut instruciuni.
while Repetarea unui numr de instruciuni atta timp ct o condiie
specificat este adevrat
Sintax:
- while expresie
instruciuni
end
// ct timp expresie este adevrat se execut instruciuni.
Operatori relaionali
<
- mai mic
<=
- mai mic sau egal
>
- mai mare
>=
- mai mare sau egal
==
- identic
~=
- diferit
13
1. INTRODUCERE N MATLAB
Operatori logici
&
- operatorul I logic
|
- operatorul SAU logic
~
- operatorul NU logic
1. INTRODUCERE N MATLAB
function [parametrii_ieire]=nume(parametrii_intrare)
cu urmtoarele semnificaii:
- function cuvnt cheie care declar fiierul ca fiier funcie.
- nume numele funciei; reprezint numele sub care se salveaz fiierul .m
(extensia .m nu face parte din nume); acest nume nu poate fi identic cu cel al
unui fiier .m deja existent.
- parametrii_ieire reprezint parametrii de ieire ai funciei; trebuie
separai prin virgul i cuprini ntre paranteze drepte.
- parametrii_intrare reprezint parametrii de intrare ai funciei;
trebuie separai prin virgul i cuprini ntre paranteze rotunde.
1.2.9. Operaii aritmetice. Operaii asupra numerelor complexe
Operatori aritmetici
- +
- adunare
- -
- scdere
- *
- nmulire
- .*
- /
- mprire
- ./
- ^
- ridicare la putere
- .^
- transpunere i conjugare
- .
- transpunere
1. INTRODUCERE N MATLAB
1. INTRODUCERE N MATLAB
1 2 3
, a = (1 3 8)
Se vor defini urmtoarele elemente: A =
4
5
6
17
1. INTRODUCERE N MATLAB
18
1. INTRODUCERE N MATLAB
19
1. INTRODUCERE N MATLAB
20
1. INTRODUCERE N MATLAB
Sintaxa:
- axis([x0 x1 y0 y1]) pe abscisa se va vizualiza ntre valorile x0 i
x1 iar pe ordonat ntre y0 i y1; aceast sintax se plaseaz dup comanda
de reprezentare grafic.
title,xlabel,ylabel,gtext,grid Precizarea titlului graficului
i a etichetelor axelor. Trasarea unei reele pe grafic. Plasarea unui text pe
grafic.
Sintaxe:
- title(text) plaseaz deasupra graficului, ca titlu, textul text.
- xlabel(text) textul text devine eticheta de pe abscis.
- ylabel(text) textul text devine eticheta de pe ordonat.
- grid traseaz pe grafic o reea de linii, nlesnind astfel citirea graficului.
- gtext(text) plaseaz pe grafic textul text (folosind mouse-ul).
Toate aceste sintaxe urmeaz dup comanda de reprezentare grafic.
hold Suprapunerea succesiv a graficelor
Dac dorim s reinem graficul curent i s adugm n aceeai fereastr
grafic urmtoarele reprezentri grafice se poate folosi funcia hold.
Sintaxa:
- hold on reine graficul curent i adaug n aceeai fereastr grafic
urmtoarele reprezentri grafice.
- hold off dac se dorete n continuare reprezentarea n ferestre grafice
separate (dezactiveaz comanda hold on).
Atenie:
Dac se dorete n cadrul unui program reprezentarea mai multor grafice n
ferestre separate, fiecare comand grafic va trebui s fie precedat de un
nume de forma figure(n), unde n este numrul figurii respective. n caz
contrar, la sfritul execuiei programului va aprea numai ultima reprezentare
grafic (se va folosi o singur fereastr grafic ce va fi tears de fiecare
dat la ntlnirea unei noi comenzi grafice).
Exemple: Se vor tasta direct n fereastra de comenzi, explicnd rezultatele:
x=0:0.2:2*pi;
size(x)
s=sin(x);
size(s)
plot(s),grid,title(sinus),xlabel(n)
stem(s),grid,title(sinus),xlabel(n)
n=linspace(min(x),max(x),length(x));
size(n)
21
1. INTRODUCERE N MATLAB
plot(n,s,r*),grid,title(sinus),xlabel(n)
hold on
stem(n,s),grid,xlabel(n),ylabel(amplitudine)
hold off
figure(1)
plot(n,s),grid,axis([0 pi min(s) max(s)])
figure(2)
plot(n,s,n,s-pi/2),grid
// se nchid ambele ferestre grafice i se continu tastarea n fereastra de comenzi
c=cos(x);
subplot(2,1,1),stem(n,s),title(sinus),grid
subplot(2,1,2),stem(n,c),title(cosinus),grid
M=[c;s];
plot(n,M),grid
N=[n;n];
plot(N,M),grid
plot(N,M),grid
z=1:1000;
p=z.^2;
plot(z,p),grid
loglog(z,p),grid
semilogx(z,p),grid
semilogy(z,p),grid
gtext(Ultimul grafic!!!)
// cu ajutorul mouse-ului plasai pe grafic textul respectiv, n poziia dorit.
E3. Exerciiu:
Realizai un program MATLAB care genereaz dou secvene x1[n] i x2 [ n]
definite astfel:
x1[n] = sin n ,
pentru 15 n 25
17
x2 [n] = cos
n
,
pentru
0 n 50
23
i reprezint cele dou secvene:
- figura 1 n acelai sistem de coordonate (pe acelai grafic);
- figura 2 folosind dou miniferestre grafice plasate una sub alta.
Reprezentai cele dou figuri folosind comanda plot iar apoi ncercai
reprezentarea lor folosind comanda stem.
22