Sunteți pe pagina 1din 12

Lucrarea de laborator nr.

1
Introducere in Matlab

1. Obiectivele lucrrii
Aceast lucrare de laborator este dedicat are ca scop familiarizarea studenilor cu
noiunile de baz MATLAB. Unele subiecte pot fi cunoscute de la alte discipline dar
sunt prezentate aici pentru a oferi o baz comun de plecare pentru toi studenii.
Acestea sunt noiuni importante pentru a putea aborda cu succes subiecte legate de
procesarea imaginilor,
n final, studenii trebuie s fie capabili s utilizeze comenzile de baz MATLAB,
s tie s genereze vectori i matrici, s efectueze operaii cu numere i matrici, s
seteze spaiul de lucru i s foloseasc facilitile MATLAB pentru reprezentri
grafice.

2. Desfurarea lucrrii
Ce este MATLAB?
MATLAB este un limbaj de nalt performan i un software folosit pentru
implementarea unor programe cu aplicaii n tehnic. El permite:
efectuarea de calcule matematice
dezvoltarea de algoritmi
modelarea i simularea sistemelor
analiza i vizualizarea datelor
generarea unor reprezentri grafice tiinifice i inginereti
MATLAB este un sistem interactiv (toate datele sunt ntotdeauna n memorie) cu
urmtoarele caracteristici:
elementul de baz pentru reprezentarea datelor este un tablou
nu este nevoie de declaraii sau de funcii prototip pentru a forma un tablou
toate datele sunt reprezentate n dubl precizie
n modul script sau n modul linie de comand, datele sunt ntotdeauna accesibile
i n memorie
Comenzi MATLAB de baz
Unde va aflai:
Folosii comanda pwd pentru a afla unde va aflai, n calculatorul pe care lucrai,
Folosii comanda dir pentru a lista fiierele din directorul curent,
Folosii comanda cd pentru a schimba directorul,
Apoi, comutai la directorul principal pentru a putea salva rezultatele acestei lucrri
de laborator.

Comanda help
Putei obine informaii i indicaii legate de toate comenzile i funciile MATLAB
(atenie, n MATLAB literele mari i mici sunt diferite; sistemul este case sensitive)
prin:
>> help comand (funcie)
De exemplu, tastai
>> help help
i citii ce apare pe ecranul monitorului Ar trebui s obinei multe informaii despre
cum s gsii informaii legate de anumite subiecte. Dac Limba Englez va face
probleme, nu va sfiii s cerei ajutor de la cadrul didactic ndrumtor.
De exemplu, dac suntei interesai de funcia cosinus, tastai:
>> help cos
Exerciiul 1.1 Folosii comada help pentru a v informa despre cel puin trei funcii
folosite n Automatic, Electronic, Procesarea Imaginilor, Statistic Matematic etc.
Dac apsai sgeile up down de la tastatur, vei putea afia comenzile
anterioare.
Comanda lookfor
Dac nu suntei siguri care este numele comenzii MATLAB pe care dorii s o
folosii, comanda lookfor v ofer soluia.
De exemplu, dac dorii s cutai funcia cosinus sau alte funcii legate de aceasta,
tastai:
>> lookfor cosine
Ca rspuns, MATLAB va afia toate funciile care au legtur cu cosine
mpreun cu o scurt descriere:
ACOS Inverse cosine.
ACOSH Inverse hyperbolic cosine.
COS Cosine.
COSH Hyperbolic cosine.
TFFUNC time and frequency domain versions of
modulated Gaussian pulse.
DCT2 Compute 2-D discrete cosine transform.
DCTMTX Compute discrete cosine transform matrix.
DCTMTX2 Discrete cosine transform matrix.
IDCT2 Compute 2-D inverse discrete cosine transform.
CHIRP Swept-frequency cosine generator.
DCT Discrete cosine transform.

cosine

FIRRCOS Raised Cosine FIR Filter design.


IDCT Inverse discrete cosine transform.
DCT Discrete cosine transform.
IDCT Inverse discrete cosine transform.
dctold.m: %DCT Discrete cosine transform.
idctold.m: %IDCT Inverse discrete cosine transform.
BLKACOS This block defines an output angle that is the
arccosine of the input.
BLKCOS This block defines the output as the cosine of the
input.
BLKCOSASIN This block defines the cosine of an angle whose
sine is u.
BLKCOSATAN This block defines the cosine of an angle whose
tangent is u1/u2.

n continuare, tastai help cos pentru a obine detalii despre funcia cos:
>> help cos
Exerciiul 1.2 Explicai detaliile pe care le-ai obinut pentru funcia cos.
Exerciiul 1.3 Repetai pentru funcia arctg.
Dac apsai sgeile up down de la tastatur, vei putea afia comenzile
anterioare.
Formarea unui vector sau a unei matrici
Dup cum am spus mai nainte, tablourile (matricile i vectorii) sunt elementele de
baz ale unui program MATLAB. MATLAB vede matricile la fel cum alte limbaje de
programare vd numerele i poate efectua operaii n matrici n mod direct, fr
folosirea unor bucle, proprietate care se va dovedi foarte util pentru procesarea
imaginilor.
Pentru a afla mai multe despre vectori i matrici, tastai urmtoarele instruciuni,
observai i comentai rezultatele.
Tastai:
>> x = [1 2 3 4 5 4 3 2 1];

Consecina este c, va fi creat un vector linie, numit x, cu 9 elemente (1 x 9), ale


crui componente au valorile specificate n instruciune.
>> x
va avea ca rezultat afiarea pe ecran a componentelor vectorului x.
Apoi,

>> who
ofer indicaii depre toate matricile/toi vectorii care exist n spaiul de lucru
(workspace), iar
>> whos
va oferi mai multe detalii despre aceste matrici/aceti vectori.
Exerciiul 1.4 Descriei spaiul de lucru din acest moment i explicai ce conine
(tipuri de date, caracteristici etc.).
n continuare, tastai
>> y = [6; 7; 8; 9; 0; 9; 8; 7; 6];
pentru a crea un nou vector, numit y, de tip 9 x 1 (vector coloan).
Observai caracterul ; la sfritul instruciunii. n acest caz, MATLAB nu va afia
vectorul y.
Apoi,
>> y'
va avea ca efect afiarea transpusei lui y.
Instruciunea
>> z = [1 2 3; 4 5 6; 7 8 9; 0 1 2]
va conduce la crearea unei matrici z.
Exerciiul 1.5 Ce este vectorul transpus al unui vector dat? Care este matricea z?
Operatori
Operatorul :
Metoda cea mai bun pentru a defini rapid anumii vectori este folosirea
operatorului : De exemplu, tastai:
>>
>>
>>
>>
>>
>>

a
b
c
d
e
f

=
=
=
=
=
=

0:10
-5:10
0:2:10
10:-2:-5
0:0.01:4.2
-pi:0.01:pi

Exerciiul 1.6 Explicai efectul fiecrei instruciuni. Scriei i explicai rezultatele


obinute.
La o analiz atent, vei putea observa c aceste instruciuni sunt de forma
limita inferioar:increment:limita superioar
Dac nu se indic un increment, valoarea lui implicit este 1.
Dac dorii s definii vectori elementari care conin numai valori 1 sau 0, trebuie s
folosii instruciunile zeros sau ones.
O alt instruciune util este randn, care permite formarea unei matrici de numere
aleatoare. Putei accesa comenile help pentru zeros, ones i randn. Pentru a
vedea cum funcioneaz ones i zeros, tastai:
>> g = zeros(2,4)
>> h = ones(5,3)
Exerciiul 1.7 Explicai efectul fiecrei instruciuni. Scriei i explicai rezultatele
obinute.
Operatorii aritmetici standard sunt
+

/
*
^

plus
minus
mprire
nmulire
exponent

Putei ncerca i explica rezultatele pentru urmtoarele instruciuni:


>>
>>
>>
>>
>>

3^2
y'
x+y'
x*y
3*x

Exerciiul 1.8 Explicai efectul fiecrei instruciuni. Scriei i explicai rezultatele


obinute.
Operatorii / * i ^ au i omologi matriciali, ./ .* i .^ , care aplic operaia
respectiv fiecrui element al matricilor. De exemplu, comparai x*y cu x.*y
Pentru aceasta, tastai:
>> x^2
>> x.^2

>> x.*x
>> x*x
Exerciiul 1.9 Explicai efectul fiecrei instruciuni. Scriei i explicai rezultatele
obinute.
Apoi, folosind comanda whos, vei putea observa i explica o muime de variabile
n spaiul de lucru.
Dac tastai clear i whos din nou, vei observa c spaiul de lucru a fost ters.
Matrici i operatori
Tastai:
>> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
>> sum(A) % afieaz suma coloanelor matricii A.
Ca rezultat, pe ecran se va afia:
>> 34 34 34 34
Exerciiul 1.10 Demonstrai c rezultatul obinut este corect.
Investigai n continuare:
>> sum(sum(A))
>> A % Transpusa conjugatei (pentru numere complexe), n caz contrar, transpusa.
>>sum(A) % Suma liniilor matricii A (coloanele lui A).
Exerciiul 1.11 Demonstrai c rezultatul obinut este corect.
Determinai valoarea elementului (4,2) din matricea A:
>> A(4,2)

Dac vei tasta, de exemplu:


>> A(4,5)

vei obine un mesaj de eroare.


Exerciiul 1.12 Demonstrai c rezultatul obinut este corect. De ce s-a rspuns cu
un mesaj de eroare?

Generarea vectorilor folosind notaia :


Un vector se poate genera prin introducerea direct a elementelor lui:
>> W=[1 2 3 4]
Dar, vectorii pot fi generai i cu ajutorul operatorului :. Aceast metod se
folosete pentru a genera vectori i pentru a indica sub-matrici. Notaia : poate fi
folosit n mod creativ pentru a factoriza diferite operaii cu minimizarea numrului de
instruciuni loop i pentru a face codul MATLAB mai simplu de neles.
>> Q=[1:5]
Se poate folosi orice increment pentru a construi vectori:
>> E=[2:2:10]
Exerciiul 1.13 Indicai vectorii W, Q i E. Explicai semnificaiile fiecrei
instruciuni.
Generarea matricilor
Matricile pot fi generate indicnd liniile lor separate prin caracterul ;. Elementele
dintr-o linie sunt separate prin caracterul ,
>> A=[1,2,3;4,5,6;7,8,9]
Notaia : poate fi folosit pentru a accesa submatrici ale unei matrici.
>> A(1:4,3)
Exerciiul 1.14 Scriei matricea A. Explicai fiecare element din ultima instruciune
i scriei rezultatul. Demonstrai c rezultatul obinut este corect.
tergerea liniilor i coloanelor
Aceast operaie se poate realiza folosind paranteze drepte.
Tastai
>> X=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16]
Apoi, pentru a terge a doua coloan a matricii X, tastai
>> X(:,2)=[]
Exerciiul 1.15 Scriei matricea A. Explicai fiecare element din ultima instruciune
i scriei rezultatul. Demonstrai c rezultatul obinut este corect.

Operaii cu matrici
+

*
^

.
\
/

Adunare
Scdere
nmulire
Ridicarea la putere
Traspusa (real) sau transpusa conjugat (complex)
Transpusa (real sau complex)
mprirea la stnga
mprirea la dreapta

mprirea matricilor
Dac A este o matrice ptrat inversabil iar b este un vector coloan compatibil cu
A, sau un vector linie compatibil cu A, atunci
x = A\b este soluia ecuaiei A * x = b
x = b/A este soluia ecuaiei x * A = b
Operatorii * ^ \ i / pot fi folosii precedai de .
Tastai:
>> B=[1 2;3 4]
>> B*B
>> B.*B
Observai i explicai diferena.
Exerciiul 1.16 Scriei matricea B. Explicai fiecare element din utimile trei
instruciuni i scriei rezultatul. Demonstrai c rezultatul obinut este corect.
Funcii matriciale speciale
Eye
Zeros
Ones
Triu
Tril
Rand

Genereaz o matrice unitate


Genereaz o matrice cu toate elementele egale cu zero
Genereaz o matrice cu toate elementele egale cu unu
Genereaz partea triunghiular superioar a unei matrici date.
(Restul elementelor sunt egale cu zero.)
Genereaz partea triunghiular inferioar a unei matrici date.
(Restul elementelor sunt egale cu zero.)
Genereaz o matrice ce conine elemente aleatoare

Tastai i explicai rezultatele:

>> zeros(2,3)
>> A=rand(3)
>> triu(A)
Exerciiul 1.17 Explicai fiecare element din utimile trei instruciuni i scriei
rezultatul. Demonstrai c rezultatul obinut este corect.
Matricile pot fi formate i din blocuri.
De exemplu:
>> A=rand(3);
>> B=[A, zeros(3,2); zeros(2,3),eye(2)];
Exerciiul 1.18 Explicai fiecare element din utimile dou instruciuni i scriei
rezultatul. Demonstrai c rezultatul obinut este corect.
Spaiul de lucru i salvarea rezultatelor
Pe msur ce introducei comezi i instruciuni MATLAB, datele sunt ntotdeauna
n spaiul de lucru i pot fi salvate. Spaiul de lucru poate fi neles ca fiind o zon
asociat de memorie accesibil din linia de comand.
Pentru a vedea spaiul de lucru, se folosete whos
Pentru a terge spaiul de lucru, se folosete clear
Pentru a salva spaiul de lucru, se folosete save name. Folosii help save
pentru a afla mai multe despre save.
Pentru a ncrca spaiul de lucru, se folosete load name. Folosii help load
pentru a afla mai multe despre load.
Reprezentri grafice n MATLAB
Grafice bidimensionale
Comanda plot permite reprezentarea grafic a numerelor dintr-un tablou n funcie
de numerele dintr-un al doilea tablou de aceeai lungime.
De exemplu, tastai i explicai efectul fiecrei comenzi i rezultatul global:
>>
>>
>>
>>
>>
>>

t=0:0.01:2;
temp=exp(-t);
plot (t,temp)
xlabel('Timp')
ylabel('Temperatura')
title('Temperaturi tranzitorii')

Exerciiul 1.19 Explicai fiecare element din utimile instruciuni i explicai efectul
instruciunilor asupra rezultatului final. De fapt, care este rezultatul final?

Pot fi schimbate culorile, simbolurile i tipul liniilor. De exemplu, tastai i explicai


rezultatele fiecrei comenzi:
>>
>>
>>
>>
>>

x=0:pi/16:2*pi;
y=sin(x);
plot(x,y,'*..')
xlabel('x')
ylabel('sin(x)')

Exerciiul 1.20 Explicai fiecare element din utimile instruciuni i explicai efectul
instruciunilor asupra rezultatului final. De fapt, care este rezultatul final?
Reprezentri grafice multiple n aceeai fereastr
Tastai i explicai rezultatele:
>>
>>
>>
>>
>>
>>
>>
>>

x=0:pi/16:2*pi;
y1=sin(x);
y2=cos(x);
plot(x,y1,'* -',x,y2,'r s -')
xlabel('x')
ylabel('sin(x) , cos(x)')
title(Functii trigonometrice')
legend ('sin','cos')

Exerciiul 1.21 Explicai fiecare element din utimile instruciuni i explicai efectul
instruciunilor asupra rezultatului final. De fapt, care este rezultatul final?
Subgrafice
Pot fi create tablouri grafice folosind comanda subplot. De exemplu:
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>

x=0:pi/16:2*pi;
y1=sin(x);
y2=cos(x);
subplot(2,1,1)
plot(x,y1,'* -')
xlabel('x')
ylabel('sin(x)')
subplot(2,1,2)
plot(x,y2,'r s -')
xlabel('x')
ylabel('cos(x)')

Exerciiul 1.22 Explicai fiecare element din utimile instruciuni i explicai efectul
instruciunilor asupra rezultatului final. De fapt, care este rezultatul final?

Putei investiga i sintaxa i efectul instruciunilor: Hold, Grid, Axis, Ezplot,


Gtext, Ginput.

3. Coninutul referatului de laborator


Referatul lucrrii trebuie s fie prezentat n format scris, n modul urmtor:
a. Pe prima pagin: Titlul lucrrii, numele studentului, disciplina, anul i grupa.
b. Cuprinsul referatului, pe pagina a doua.
Apoi:
c. Numrul exerciiului din Desfurarea lucrrii, textul acestuia i rezolvarea sau
soluia propus. Soluia prezentat trebuie s conin explicaii legate de efectele
fiecrei comenzi, fiecrei instruciuni i, dac est cazul, o explicaie global.
Rezultatele unor calcule realizate n MATLAB trebuie s fie justificate prin calcule de
mn.
d. Rspunsuri i rezolvri pentru toate ntrebrile i problemele enunate n
capitolul final al acestei lucrri de laborator.
e. Observaii, propuneri de dezvoltare sau alte elemente care demonstreaz
aprofundarea noiunilor din lucrare.

ntrebri i probleme
a. Ce este transpusa unei matrici? Ce este adjuncta unei matrrici? Ce este inversa
unei matrici i cum se calculeaz? Cum se adun, scad, nmulesc sau mpart dou
matrici? Dai exemple pentru fiecare.
b. Explicai formatul i exemplificai modul de folosire al instruciunilor: Hold,
Grid, Axis, Ezplot, Gtext, Ginput.
c. Aplicai noiunile nvate n aceast lucrare pentru a elabora i indica o
succesiune de instruciuni/comenzi care s conduc la un rezultat. Enunai problema,
prezentai modul de rezolvare, explicai rezultatul i artai c rezultatul este corect.
d. Efectuai urmtoarele nmuliri matriciale n MATLAB i explicai de ce
rspunsul este corect.
3 4 1
2
1 2 0
2 0
1
0

5
1 2
21.5 3 1 2 5 4


2 1 7 0
4 9 2
e. Un exemplu de funcie care ar fi foarte greu de reprezentat grafic fr un
calculator este Lab1 Iugaza
F ( x) = x xx ( x x ) x
Indicai succesiunea de instruciuni/comenzi MATLAB pentru a reprezenta grafic
aceast funcie. Tiprii i explicai rezultatul.
Observaie. ezplot folosete 2 x 2 . Acest interval nu este potrivit pentru
funcia dat. O alegere mai bun este 0 x 2

f. Reprezentai grafic funcia


Y (t ) = 1 2 e t sin( 2 35o ) , 0 t 10 .
Explicai semnificaia fiecrei instruciuni/comenzi, tiprii i explicai rezultatul
final.
g. Un vector X se obine prin msurarea unui parametru (curent, tensiune,
presiune, for etc.). Considerm c toate datele din gama 0.1 < x < 0.1 sunt eronate
i vrem s le eliminm i s le nlocuim cu valori zero (la sfritul tabloului).
Dezvoltai i explicai dou metode prin care se pot face aceste operaii. Ca aplicaie
numeric, considerai datele din tabelul de mai jos.
X (1)
X ( 2)
X (3)
X ( 4)
X (5)
X ( 6)
X (7 )

nainte
1.92
0.05
2.43
0.02
0.09
0.85
0.06

Dup
1.92
2.43
0.85
0
0
0
0

Indicaie. Folosii funcia find, length.

S-ar putea să vă placă și