Introducere_in_Matlab.docx
-
Upload
mihai-alexx -
Category
Documents
-
view
215 -
download
0
Transcript of Introducere_in_Matlab.docx
dedicat calcului numeric i opereaz este matricea, de aici
. Resursele sale de calcul i aii matematice fundamentale, D i 3D, realizarea de interfee i sale, MATLAB este alctuit ate TOOLBOX-urile. Acestea pt colecii extinse de funcii e la o versiune la alta, pentru a area numeric a semnalelor cel SSING.
TLAB tre:
rea pe ecranul calculatorului de meniuri aferent. Simbolul la nceputul fiecrei linii de entru reprezentri grafice vor ce afiarea unor grafice.
duse n linia de comand prin a se face ca ntr-o list).
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=pix =3.1416
format long
xx =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
de fiiere care conin n prima e din help.
iiere care conin n prima linie lp.
rectorul curent sau din orice alt
rectorul curent.
r din directorul nume. schimb directorul de lucru.
himb directorul de lucru n B este instalat pe c:\ ).
un anumit director nu poate fi ul de lucru .
AB
returnat rezultatul unui calcul, e.
enzi):
s-a alocat nici un nume alocat numele x
plexe.
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
abstrac ie 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 afi a 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.
Exemplu: Fie matricea A =123B = (78 9),1
i vectoriiC =
4 5 6 2
A=[1,2,3;4,5,6]A =123
A=[1 2 3;4 5 6]A =456
123
A=[1 2 3 enter456
4 5 6]A =123
B=[7 8 9]B =456
789
4
-1 -2
M corespunztor liniei i i mrarea elementelor fcndu-se
vector.
i:
= 6 = 5 == 8 -2
i matrice sau s mai adugm ice, procedm ca n exemplul
123
450
123
450
00-3
-1 -2 6
mari pornind de la matrice de folosi matricea A i vectorii B 3 x 1):
1. INTRODUCERE N MATLAB
D=[A;B]D =123
450
00-3
789
// 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 = 123-1
450-2
00-36
// 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
// unde D este matricea definit anterior (vezi pag. 6)
tricea format cu elementele r l, m i n ale matricei M.
matricei M i le pune sub forma numr pe coloane).
M i le pune sub forma unui una sub alta, sub forma unui
ea A i vectorii B i C din i vectori.
n vector linie v cu elementele egal cu pas (pasul poate fi i fie mai mare dect valoarea
vector linie v cu elementele egal cu 1.
_elemente) se genereaz la minim la maxim, cu pas u numr_de_elemente .
eaz un vector linie v avnd 50i 10maxim .
_elemente) se genereaz emente elemente distribuite
1. INTRODUCERE N MATLAB
Atenie: Dac maxim=pi atunci elementele vor fi distribuite logaritmic ntre
10minim 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 unitateSintaxe:
-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))
zeros - Matricea zeroSintaxe:
-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
// unde D este matricea definit anterior (vezi pag. 6)
a definit anterior (vezi pag. 6)
imensiune n x n.
siune m x n avnd elementele lor egale cu 0.
e de dimensiune egal cu rimei diagonale egale cu 1 iar
definit anterior (vezi pag. 6) ribuie uniformne n x n avnd drept elemente 0 i 1.
mensiune m x n avnd drept rm ntre 0 i 1.
dimensiunea matricei M avnd uniform ntre 0 i 1.
a definit anterior (vezi pag. 6) stribuie normal (gaussian)
une n x n avnd drept elemente ian) de medie nul i variana
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 distribu ie 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))
diag - Matricea diagonalSintaxe: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
ular din matricea M (anuleaz nalei principale).
ntele de deasupra diagonalei k a principal vezi sintaxa de la
toarele exemple:
ular din matricea M (anuleaz principal)
ntele de sub diagonala k din principal vezi sintaxa de la
toarele exemple:
ul i inversa unei matrice variabilelor
unci
e (lungimea) vectorului v. umrul de linii i numrul de
inii (l) i numrul de coloane
mensiuni va fi egal cu 1; dac e coloan atunci c = 1.
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 matriceSintax: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 matriceSintax: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 condiionatSintaxe:
- if expresie instruciuni
end
// dac expresie este adevrat se execut instruciuni; dac expresie este fals se trece dup end.
12
nstruciuni_1; ruciuni_2.
instruciuni_1;
_ 2 este adevrat se execut
de un anumit numr de ori
niial la final cu pasul
iuni atta timp ct o condiie
instruciuni.
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 execu ie prin simpla introducere de la tastatur a numelui fiierului (fr extensia .m).Pentru crearea unui astfel de fiier se parcurg urmtorii pa i:
-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 fi ier funcie. Aceste fiiere pot fi adugate ca funcii noi n structura MATLAB. Forma general a primei linii a unui fiier funcie este:
14
(parametrii_intrare)
l ca fiier funcie.
ub care se salveaz fiierul .m me nu poate fi identic cu cel al
trii de ieire ai funciei; trebuie drepte.
metrii de intrare ai funciei; ranteze rotunde.
erelor complexe
ctori) element cu element
ctori) element cu element
u vector) element cu element
3 0), b = 1/3 2 2
A.*B , A*B. , a.*a , B. , A , A. , A^2 , 3 , b.^3 , 2/A , 2./A ,
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
cestor funcii folosii comanda axa de la pagina 2).
rului v. ectorului v.
ca elemente suma elementelor
avnd caelemente produsul
3, a = (13 8)
6
1. INTRODUCERE N MATLAB
max,min Maximul i minimulSintaxe:
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 pozi ia 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 pozi ia minimului respectiv n cadrul fiecrei coloane.
Verificai sintaxele anterioare folosind matricea A i vectorul a definite mai sus.
mean Media aritmeticSintaxe: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 con ine elementele vectorului iniial ridicate la ptrat;- o matrice obinut din nmulirea vectorului iniial cu transpusul su.
18
onate liniare
e reale se vor reprezenta grafic dice este 1, ultimul indice este vector cu elemente complexe e partea real (pe abscis) i de ale.c coloanele matricei M (fiecare tor i reprezentat ca n sintaxa
i N este o matrice de aceeai
ntele vectorului y n funcie de ctorului x nu este egal cu osibil.
ste egal cu numrul de linii al grafic coloanele matricei M n imea vectorului x este egal cu or reprezenta pe acelai grafic vectorului x; dac lungimea mensiunile matricei M atunci
grafic coloanele matricei N n n matricea N va fi reprezentat 1, 2, , numrul de coloane); siune atunci reprezentarea nu
i fereastr grafic, utiliznd o
or reprezenta pe acelai grafic n funcie de xn (pot fi vectori fcute n sintaxele anterioare, rice; dac xi i yi (i =1, 2,,n) a nu este posibil.
reprezentare a graficelor. Vezi
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 func iile 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. Funciasemilogx realizeaz acela i tip de scalare ns numai pe
abscis iar funciasemilogy 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:123
456
Sintaxa:789
-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
a vizualiza ntre valorile x0 i ax se plaseaz dup comanda
Precizarea titlului graficului e grafic. Plasarea unui text pe
ului, ca titlu, textul text. cheta de pe abscis.
cheta de pe ordonat.
nind astfel citirea graficului. text (folosind mouse-ul). prezentare grafic.
adugm n aceeai fereastr olosi funcia hold.
n aceeai fereastr grafic eprezentarea n ferestre grafice
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.
entarea mai multor grafice n trebui s fie precedat de un rul figurii respective. n caz rea numai ultima reprezentare ce va fi tears de fiecare
nzi, explicnd rezultatele:
l(n)
l(n)
));
E3.Exerciiu:
Realizai un program MATLAB care genereaz dou secvene x1[n] definite astfel:
,pentru 15 n 25
x1[n] =sin17n
x2,pentru0 n 50
[n] = cos23n
i reprezint cele dou secven e:
-figura 1 n acela i sistem de coordonate (pe acelai grafic);
-figura 2 folosind dou miniferestre grafice plasate una sub alta.
Reprezentai cele dou figuri folosind comandaplotiar apoi
reprezentarea lor folosind comanda stem.
i x2[n]
ncercai
22