You are on page 1of 22

1.

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.2. Comenzi i funcii principale n MATLAB


MATLAB opereaz cu dou tipuri de ferestre:
1. fereastra de comenzi;
2. fereastra pentru reprezentri grafice.
La deschiderea programului MATLAB va aprea pe ecranul calculatorului
fereastra de comenzi, avnd n partea de sus bara de meniuri aferent. Simbolul
>> reprezint prompterul MATLAB i se afl la nceputul fiecrei linii de
comand din fereastra de comenzi. Ferestrele pentru reprezentri grafice vor
aprea atunci cnd se va cere prin comenzi specifice afiarea unor grafice.
Atenie: Comenzile introduse anterior pot fi readuse n linia de comand prin
folosirea sgeilor de la tastatur, i (cutarea se face ca ntr-o list).
1

1. INTRODUCERE N MATLAB

1.2.1. Funcii MATLAB de interes general


help furnizeaz informaii despre MATLAB i funciile acestuia.
Sintax:
help nume furnizeaz informaii despre nume (poate fi un nume de
funcie sau un nume de director).
Exemplu:
help fft furnizeaz informaii despre transformata Fourier discret.
who listeaz numele variabilelor din spaiul de lucru.
whos furnizeaz informaii suplimentare referitoare la variabilele din
spaiul de lucru (nume, dimensiune etc.).
format stabilete formatul extern de afiare al numerelor pe ecran.
Sintaxa:
format opiune parametrul opiune poate fi:
- short 5 cifre
// formatul implicit
- long 15 cifre
- short e 5 cifre + exp (puteri ale lui 10)
- long e 15 cifre + exp (puteri ale lui 10)
etc.
Pentru mai multe informaii tastai help format.
Exemple:
format short
x=pi

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.

1.2.2. Variabile i constante speciale n MATLAB


ans variabil creat automat n care este returnat rezultatul unui calcul,
atunci cnd expresia nu a avut asignat un nume.
Exemplu (se va tasta direct n fereastra de comenzi):
3

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 /.

i sau j folosite reprezentarea numerelor complexe.


3

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

Dac dorim s schimbm elementele unei matrice sau s mai adugm


alte elemente, fr a mai rescrie ntreaga matrice, procedm ca n exemplul
urmtor:
A(2,3)=0

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

M([i,j,k],[l,m,n]) extrage submatricea format cu elementele


aflate la intersecia liniilor i, j i k i coloanelor l, m i n ale matricei M.
M(:,:) selecteaz ntreaga matrice M.
M(i:j) selecteaz elementele de i la j ale matricei M i le pune sub forma
unui vector linie (elementele ntr-o matrice se numr pe coloane).
M(:) selecteaz toate elementele matricei M i le pune sub forma unui
vector coloan (pune coloanele matricei M una sub alta, sub forma unui
vector coloan).
Verificai sintaxele de mai sus folosind matricea A i vectorii B i C din
exemplele anterioare sau construind alte matrice i vectori.
1.2.4. Vectori i matrice uzuale
Generarea vectorilor cu pas liniar
Sintaxe:
- v=iniial:pas:final se genereaz un vector linie v cu elementele
ncepnd de la iniial la final, cu pasul egal cu pas (pasul poate fi i
negativ dar atunci valoarea iniial trebuie s fie mai mare dect valoarea
final).
- v=iniial:final se genereaz un vector linie v cu elementele
ncepnd de la iniial la final, cu pasul egal cu 1.
- v=linspace(minim,maxim,numr_de_elemente) se genereaz
un vector linie v cu elementele ncepnd de la minim la maxim, cu pas
constant i avnd un numr de elemente egal cu numr_de_elemente.
Verificai urmtoarele exemple:
v=3:7:40
u=5:10
d=17:-3:4
l=linspace(17,58,4)
q=linspace(pi,-pi,6)
Generarea vectorilor cu pas logaritmic
Sintaxe:
- v=logspace(minim,maxim) se genereaz un vector linie v avnd 50
de elemente distribuite logaritmic ntre 10 minim i 10 maxim .
- v=logspace(minim,maxim,numr_de_elemente) se genereaz
un vector linie v avnd numr_de_elemente elemente distribuite
logaritmic ntre 10 minim i 10 maxim .
7

1. INTRODUCERE N MATLAB

Atenie: Dac maxim=pi atunci elementele vor fi distribuite logaritmic ntre


10 minim i .
Verificai urmtoarele exemple:
g=logspace(1,2)
r=logspace(1,pi)
h=logspace(1,2,5)
k=logspace(0,pi,5)
Matricea goal
Sintaxa:
- x=[] genereaz o matrice goal (fr nici un element)
Exemplu:
x=[]

x =
[]

ones - Matricea unitate


Sintaxe:
- ones(n) returneaz o matrice de dimensiune n x n cu toate elementele
egale cu 1.
- ones(m,n) returneaz o matrice de dimensiune m x n cu toate
elementele egale cu 1.
- ones(size(M)) returneaz o matrice de dimensiunea matricei M cu
toate elementele egale cu 1.
Verificai urmtoarele exemple:
ones(3)
ones(1,5)
ones(5,1)
ones(3,2)
ones(size(D))
// unde D este matricea definit anterior (vezi pag. 6)
zeros - Matricea zero
Sintaxe:
- zeros(n) returneaz o matrice de dimensiune n x n cu toate elementele
egale cu 0.
- zeros(m,n) returneaz o matrice de dimensiune m x n cu toate
elementele egale cu 0.
- zeros(size(M)) returneaz o matrice de dimensiunea matricei M cu
toate elementele egale cu 0.
8

1. INTRODUCERE N MATLAB

Verificai urmtoarele exemple:


zeros(3)
zeros(1,5)
zeros(5,1)
zeros(3,2)
zeros(size(D))
// unde D este matricea definit anterior (vezi pag. 6)
eye - Matricea identitate
Sintaxe:
- eye(n) returneaz o matrice identitate de dimensiune n x n.
- eye(m,n) returneaz o matrice de dimensiune m x n avnd elementele
primei diagonale egale cu 1 iar restul elementelor egale cu 0.
- eye(size(M)) returneaz o matrice de dimensiune egal cu
dimensiunea matricei M, avnd elementele primei diagonale egale cu 1 iar
restul elementelor egale cu 0.
Verificai urmtoarele exemple:
eye(3)
eye(2,3)
eye(3,2)
eye(size(D))
// unde D este matricea definit anterior (vezi pag. 6)
rand - Matricea cu numere aleatoare cu distribuie uniform
Sintaxe:
- rand(n) returneaz o matrice de dimensiune n x n avnd drept elemente
numere aleatoare cu distribuie uniform ntre 0 i 1.
- rand(m,n) returneaz o matrice de dimensiune m x n avnd drept
elemente numere aleatoare cu distribuie uniform ntre 0 i 1.
- rand(size(M)) returneaz o matrice de dimensiunea matricei M avnd
drept elemente numere aleatoare cu distribuie uniform ntre 0 i 1.
Verificai urmtoarele exemple:
rand(3)
rand(1,5)
rand(5,1)
rand(3,2)
rand(size(D))
// unde D este matricea definit anterior (vezi pag. 6)
randn - Matricea cu numere aleatoare cu distribuie normal (gaussian)
Sintaxe:
- randn(n) returneaz o matrice de dimensiune n x n avnd drept elemente
numere aleatoare cu distribuie normal (gaussian) de medie nul i variana
unitar.
9

1. INTRODUCERE N MATLAB

- randn(m,n) returneaz o matrice de dimensiune m x n avnd drept


elemente numere aleatoare cu distribuie normal de medie nul i variana
unitar.
- randn(size(M)) returneaz o matrice de dimensiunea matricei M
avnd drept elemente numere aleatoare cu distribuie normal (gaussian) de
medie nul i variana unitar.
Verificai urmtoarele exemple:
randn(3)
randn(1,5)
randn(5,1)
randn(3,2)
randn(size(D))
// unde D este matricea definit anterior (vezi pag. 6)
diag - Matricea diagonal
Sintaxe:
Dac v este un vector (linie sau coloan) atunci
- diag(v) returneaz o matrice ptrat diagonal, cu elementele vectorului
v pe diagonala principal.
- diag(v,k) returneaz o matrice ptrat cu elementele vectorului v pe
diagonala k deasupra celei principale, dac k > 0, sau sub cea principal dac
k < 0; restul elementelor sunt 0.
Dac M este o matrice atunci
- diag(M) returneaz un vector coloan ce conine elementele de pe
diagonala principal a matricei M.
- diag(M,k) returneaz un vector coloan ce conine elementele din
matricea M de pe diagonala k deasupra celei principale, dac k > 0, sau sub
cea principal, dac k < 0.

Se va defini un vector linie a i o matrice A:


a=randn(1,5)
A=randn(5)
Verificai urmtoarele exemple:
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))
10

1. INTRODUCERE N MATLAB

tril - Matricea inferior triunghiular


Sintaxe:
- tril(M) extrage matricea inferior triunghiular din matricea M (anuleaz
toate elementele matricei M de deasupra diagonalei principale).
- tril(M,k) nlocuiete cu 0 toate elementele de deasupra diagonalei k
din matricea M (raportarea se face la diagonala principal vezi sintaxa de la
diag).

Pentru matricea A definit anterior verificai urmtoarele exemple:


tril(A)
tril(A,1)
tril(A,-1)
triu - Matricea superior triunghiular
Sintaxe:
- triu(M) extrage matricea superior triunghiular din matricea M (anuleaz
toate elementele matricei M de sub diagonala principal)
- triu(M,k) nlocuiete cu 0 toate elementele de sub diagonala k din
matricea M (raportarea se face la diagonala principal vezi sintaxa de la
diag).

Pentru matricea A definit anterior verificai urmtoarele exemple:


triu(A)
triu(A,1)
triu(A,-1)

1.2.5. Dimensiunea unei matrice. Determinantul i inversa unei matrice


length,size Determinarea dimensiunii variabilelor
Sintaxe:
Dac v este un vector i M este o matrice m x n atunci
- length(v) returneaz numrul de elemente (lungimea) vectorului v.
- length(M) returneaz maximul dintre numrul de linii i numrul de
coloane al matricei M (maximul dintre m i n).
- [l,c]=size(M) returneaz numrul de linii (l) i numrul de coloane
(c) pentru matricea M.
- [l,c]=size(v) n acest caz una dintre dimensiuni va fi egal cu 1; dac
v este un vector linie atunci l = 1, iar dac este coloan atunci c = 1.

11

1. INTRODUCERE N MATLAB

Se va defini un vector linie a, un vector coloan b i o matrice C:


a=randn(1,5)
b=randn(5,1)
C=randn(3,4)
Verificai urmtoarele exemple:
length(a)
length(b)
length(C)
size(a)
size(b)
size(C)
det Determinantul unei matrice
Sintax:
Dac M este o matrice ptratic (numrul de linii = numrul de coloane) atunci
- det(M) calculeaz determinantul matricei M.
Se vor defini dou matrice:
M=randn(4)
N=randn(4,3)
Verificai urmtoarele exemple:
det(M)
det(N)
inv Inversa unei matrice
Sintax:
Dac M este o matrice ptratic cu determinantul diferit de zero atunci
- inv(M) calculeaz inversa matricei M.
Verificai folosind matricele M i N definite la punctul precedent.

1.2.6. Instruciuni de control logic. Operatori relaionali i operatori logici


if,else,elseif Execuia condiionat
Sintaxe:
- if expresie
instruciuni
end
// dac expresie este adevrat se execut instruciuni;
dac expresie este fals se trece dup end.
12

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.2.7. Crearea programelor MATLAB (crearea fiierelor de comenzi *.m)


Pentru secvene lungi de comenzi se recomand crearea i lansarea n
execuie a unui program MATLAB. Acesta este un fiier text avnd extensia
.m i coninnd succesiunea dorit de comenzi MATLAB. Dup creare, fiierul
devine o nou comand extern MATLAB, care poate fi lansat n execuie prin
simpla introducere de la tastatur a numelui fiierului (fr extensia .m).
Pentru crearea unui astfel de fiier se parcurg urmtorii pai:
- n bara de meniuri a ferestrei de comenzi se selecteaz File, iar n interiorul
acesteia New, urmat de M-file. Se va deschide astfel o nou fereastr (sesiune
de editare cu editorul NOTEPAD) cu bar de meniuri proprie i cu numele
Untitled. n acest fiier se scrie programul MATLAB dorit.
- pentru a salva fiierul astfel creat sub un alt nume se selecteaz din bara de
meniuri a noii ferestre comanda File, urmat de Save As; va aprea o nou
fereastr de dialog n care vom preciza numele fiierului (File name:) nsoit
de extensia .m i locul unde dorim s l salvm (Save in:).
Atenie:
- pentru a rula un program MATLAB trebuie ca directorul n care a fost salvat
s fie directorul de lucru (vezi comanda cd, pagina 3).
- pentru a fi luate n considerare eventualele modificri fcut ntr-un
program MATLAB, nainte de o nou rulare, fiierul trebuie salvat (File,
urmat de Save).
E1. Exerciiu:
Folosind sintaxele i indicaiile din seciunile 1.2.6. i 1.2.7. realizai un program
MATLAB care s genereze un vector cu elemente aleatoare cu distribuie
normal (gaussian) i s afieze elementele negative ale acestui vector.
1.2.8. Crearea funciilor MATLAB (crearea fiierelor funcie)
Dac prima linie a unui fiier MATLAB (*.m) conine la nceput cuvntul
function atunci fiierul respectiv e declarat ca fiier funcie. Aceste fiiere
pot fi adugate ca funcii noi n structura MATLAB. Forma general a primei
linii a unui fiier funcie este:
14

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

- .*

- nmulire ntre dou matrice (sau vectori) element cu element

- /

- mprire

- ./

- mprire ntre dou matrice (sau vectori) element cu element

- ^

- ridicare la putere

- .^

- ridicare la putere a unei matrice (sau vector) element cu element

- transpunere i conjugare

- .

- transpunere

S se defineasc urmtoarele elemente:


1/ 3
1 2 3
1 i 2 + i 0
, B =
, a = (1 + i 3 0 ) , b = 2
A =
3
i
2
4 5 6
i
Verificai i explicai urmtoarele exemple:
A+B , A+3 , B-2 , B-i , a+a , A*B , A.*B , A*B. , a.*a ,
a*a , A*a , A*a, A*a., A*b , B , B. , A , A. , A^2 ,
A.^2 , 1-b , b*b , b*b , b.*b , b^3 , b.^3 , 2/A , 2./A ,
2/b , 2./b .
15

1. INTRODUCERE N MATLAB

Operaii asupra numerelor complexe


- abs calculeaz valoarea absolut (modulul).
- angle calculeaz faza.
- conj calculeaz complex conjugatul.
- real extrage partea real.
- imag extrage partea imaginar.
Verificai comenzile utiliznd drept argumente elementele A, B, a i b definite
anterior.
1.2.10. Funii matematice uzuale

Funciile radical, exponenial i logaritm


sqrt extragere radical de ordinul 2 (rdcina ptrat).
exp calculeaz exponeiala (puteri ale numrului e).
log calculeaz logaritmul natural (logaritm n baza e).
log2 calculeaz logaritmul n baz 2.
log10 calculeaz logaritmul zecimal (logaritm n baza 10).
pow2 calculeaz puteri ale lui 2.

Funciile trigonometrice directe


sin calculeaz sinusul
cos calculeaz cosinusul
tan calculeaz tangeta
cot calculeaz cotangenta
sec calculeaz secanta
csc calculeaz cosecanta

Funciile trigonometrice inverse


asin calculeaz arcsinus
acos calculeaz arccosinus
atan calculeaz arctangenta
atan2 calculeaz arctangenta dac argumentul este complex
acot calculeaz arccotangenta
asec calculeaz arcsecanta
acsc calculeaz arccosecanta

Funciile hiperbolice directe


- sinh calculeaz sinusul hiperbolic
- cosh calculeaz cosinusul hiperbolic
16

1. INTRODUCERE N MATLAB

tanh calculeaz tangeta hiperbolic


coth calculeaz cotangenta hiperbolic
sech calculeaz secanta hiperbolic
csch calculeaz cosecanta hiperbolic

Funciile hiperbolice inverse


asinh calculeaz arcsinus hiperbolic
acosh calculeaz arccosinus hiperbolic
atanh calculeaz arctangenta hiperbolic
acoth calculeaz arcotangenta hiperbolic
asech calculeaz arcsecanta hiperbolic
acsch calculeaz arccosecanta hiperbolic

Pentru informaii despre modul de utilizare al acestor funcii folosii comanda


help nsoit de numele funciei dorite (vezi sintaxa de la pagina 2).

1.2.11. Funii destinate analizei de date


sum,prod Suma i produsul
Sintaxe:
Dac v este un vector i M este o matrice atunci
- sum(v) calculeaz suma elementelor vectorului v.
- prod(v) calculeaz produsul elementelor vectorului v.
- sum(M) returneaz un vector linie avnd ca elemente suma elementelor
fiecrei coloane din matricei M.
- prod(M) returneaz un vector linie avnd ca elemente produsul
elementelor fiecrei coloane din matricei M.

1 2 3
, a = (1 3 8)
Se vor defini urmtoarele elemente: A =
4
5
6

S se verifice urmtoarele exemple:


sum(a)
sum(A)
sum(sum(A))
prod(a)
prod(A)
prod(prod(A))

17

1. INTRODUCERE N MATLAB

max,min Maximul i minimul


Sintaxe:
Dac v este un vector i M este o matrice atunci
- max(v) returneaz elementul maxim al vectorului v.
- min(v) returneaz elementul minim al vectorului v.
- [m,p]=max(v) returneaz elementul maxim al vectorului (m) precum i
indicele elementului maxim (p); dac exist maxime multiple se returneaz
indicele primului dintre ele.
- [m,p]=min(v) returneaz elementul minim al vectorului (m) precum i
indicele elementului minim (p); dac exist minime multiple se returneaz
indicele primului dintre ele.
- max(M) returneaz un vector linie avnd ca elemente maximul
elementelor din fiecare coloan a matricei M.
- min(M) returneaz un vector linie avnd ca elemente minimul elementelor
din fiecare coloan a matricei M.
- [m,p]=max(M) returneaz un vector linie m avnd ca elemente maximul
elementelor din fiecare coloan a matricei M precum i un vector linie p ce
conine poziia maximului respectiv n cadrul fiecrei coloane.
- [m,p]=min(M) returneaz un vector linie m avnd ca elemente minimul
elementelor din fiecare coloan a matricei M precum i un vector linie p ce
conine poziia minimului respectiv n cadrul fiecrei coloane.
Verificai sintaxele anterioare folosind matricea A i vectorul a definite mai sus.
mean Media aritmetic
Sintaxe:
Dac v este un vector i M este o matrice atunci
- mean(v) calculeaz media aritmetic a elementelor vectorului v.
- mean(M) returneaz un vector linie avnd ca elemente media aritmetic a
elementelor fiecrei coloane din matricei M.
Verificai sintaxele anterioare folosind matricea A i vectorul a definite mai sus.
E2. Exerciiu:
Realizai o funcie MATLAB care avnd drept parametru de intrare un vector cu
elemente complexe returneaz ca parametri de ieire:
- media aritmetic a prilor reale ale elementelor vectorului;
- un vector ce conine elementele vectorului iniial ridicate la ptrat;
- o matrice obinut din nmulirea vectorului iniial cu transpusul su.

18

1. INTRODUCERE N MATLAB

1.2.12. Reprezentri grafice


plot,stem Reprezentri grafice n coordonate liniare
Sintaxe:
Dac v este un vector i M este o matrice atunci
- plot(v) dac v este un vector cu elemente reale se vor reprezenta grafic
elementele sale n funcie de indici (primul indice este 1, ultimul indice este
egal cu lungimea vectorului); dac v este un vector cu elemente complexe
atunci reprezentarea sa se va face n funcie de partea real (pe abscis) i de
partea imaginar (pe ordonat) a elementelor sale.
- plot(M) se vor reprezenta pe acelai grafic coloanele matricei M (fiecare
din coloanele matricei este privit ca un vector i reprezentat ca n sintaxa
precedent);
Dac x i y sunt doi vectori de aceeai lungime i N este o matrice de aceeai
dimensiune cu matricea M atunci
- plot(x,y) se vor reprezenta grafic elementele vectorului y n funcie de
elementele vectorului x; dac lungimea vectorului x nu este egal cu
lungimea vectorului y reprezentarea nu este posibil.
- plot(x,M) dac lungimea vectorului x este egal cu numrul de linii al
matricei M atunci se vor reprezenta pe acelai grafic coloanele matricei M n
funcie de elementele vectorului x; dac lungimea vectorului x este egal cu
numrul de coloane al matricei M atunci se vor reprezenta pe acelai grafic
liniile matricei M n funcie de elementele vectorului x; dac lungimea
vectorului x nu este egal cu una din dimensiunile matricei M atunci
reprezentarea nu este posibil.
- plot(M,N) se vor reprezenta pe acelai grafic coloanele matricei N n
funcie de coloanele matricei M (coloana k din matricea N va fi reprezentat
funcie de coloana k din matricea M, unde k = 1, 2, , numrul de coloane);
dac cele dou matrice nu au aceeai dimensiune atunci reprezentarea nu
este posibil.
Pentru reprezentarea mai multor grafice n aceeai fereastr grafic, utiliznd o
singur comand, folosim
- plot(x1,y1,x2,y2,...,xn,yn) - se vor reprezenta pe acelai grafic
y1 n funcie de x1, y2 n funcie de x2, ,yn n funcie de xn (pot fi vectori
sau matrice); rmn valabile considerentele fcute n sintaxele anterioare,
referitor la cazurile cnd avem vectori sau matrice; dac xi i yi (i =1, 2,,n)
nu au aceeai dimensiune atunci reprezentarea nu este posibil.
Atenie:
Se pot folosi diverse linii, markere i culori de reprezentare a graficelor. Vezi
help plot.

19

1. INTRODUCERE N MATLAB

Funcia stem realizeaz o reprezentare n form discret a datelor.


Pentru variantele de MATLAB 5 sau MATLAB 6 se pot folosi oricare din
sintaxele prezentate la plot, exceptnd ultima sintax. Pentru variantele de
MATLAB 4 argumentele de intrare ale funciei stem nu pot fi dect vectori, iar
reprezentarea grafic nu se poate face dect cu o singur culoare (se pot folosi
ns mai multe tipuri de linii i markere).
Vezi help stem.
loglog,semilogx,semilogy Reprezentri grafice n coordonate
logaritmice
Pentru acest tip de reprezentri se folosesc funciile loglog, semilogx
i semilogy. Sintaxele rmn aceleai ca la funcia plot, singura deosebire
fiind modul de scalare al axelor. Astfel funcia loglog scaleaz ambele axe
(abscisa i ordonata) folosind logaritmul n baz 10, deci pe axe vom avea puteri
ale lui 10. Funcia semilogx realizeaz acelai tip de scalare ns numai pe
abscis iar funcia semilogy procedeaz n acelai mod ns numai pe
ordonat.
subplot Divizarea ferestrei grafice
Dac dorim ca fereastra grafic s conin mai multe reprezentri grafice
se poate folosi funcia subplot care mparte fereastra grafic n mai multe
miniferestre, n fiecare dintre acestea putnd fi plasat cte un grafic. Fereastra
grafic este astfel privit sub forma unei matrice cu m linii i n coloane, deci n
total mn miniferestre. Numrarea acestor miniferestre se face pe linii. De
exemplu, dac vrem s mprim fereastra grafic n 33 = 9 miniferestre vom
avea urmtoarea ordine:
1 2 3
4 5 6
7 8 9
Sintaxa:
- subplot(m,n,p) mparte fereastra grafic ntr-o matrice m x n (mn
miniferestre), iar p reprezint numrul fiecrei miniferestre n matricea
grafic respectiv (numrarea se face pe linii); sintaxa respectiv este urmat
de comanda propriu-zis de afiare a graficului, care poate fi oricare din cele
prezentate pn acum (stem, plot, loglog, semilogx, semilogy).
axis Schimbarea limitelor axelor
Dac se dorete vizualizarea numai a unei anumite poriuni dintr-un
grafic, corespunztoare unor anumite intervale pe abscis i ordonat, se va
folosi comanda axis.

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

You might also like