Documente Academic
Documente Profesional
Documente Cultură
Lansarea mediului
Liniile de comand
Sgeat sus
Sgeat jos
Sgeat stnga
Sgeat dreapta
Ctrl+sgeat stnga
Ctrl+sgeat dreapta
Home
End
Esc
Ins
Backspace
Introducerea matricilor
explicit;
ca rezultat al unor calcule;
create n fiiere de tip M;
ncrcate din fiiere externe.
Cea mai simpl metod de a introduce o matrice este scrierea explicit. De exemplu,
introducnd linia de comand:
A=[1 2 3;4 5 6;7 8 9]
se obine rezultatul:
A=
1
4
7
2
5
8
3
6
9
789]
1.3.2.
Elementele matricilor
1.7321
4.8000
1.7321
4.8000
1.3000
2 3
5 6
8 9
11 12
Variabile i declaraii
variabil=expresie.
Sau simplu:
expresie.
Expresii aritmetice
1.3.6.
Numere complexe
Formatul de ieire
1.3333
1.3333E+000
1.333333333333338
1.333333333333338E+000
3FF5555555555555
+
0.0000
1.2345E-006
0.000001234500000
0.000001234500000E-006
3EB4B6231ABFD271
+
Pentru prsirea mediului se va tasta quit sau exit. Terminarea sesiunii de lucru
are ca efect pierderea valorilor variabilelor din spaiul de lucru. Inainte de terminare, se
poate salva coninutul spaiului de lucru utiliznd comanda:
save
Ca urmare a acestei comenzi, se vor salva toate variabilele din spaiul de lucru ntr-un
fiier numit matlab.mat. La urmtoarea sesiune de lucru, se poate restaura spaiul de
lucru cu comanda:
load
Comenzile anterioare pot fi folosite n conjuncie cu nume de fiiere sau numai pentru
variabile selectate.
save temp X
save temp x z y
vor avea ca efect salvare n fiierul temp.mat a variabilelor x i respectiv x, y, z.
1.3.10. Funcii
MATLAB pune la dispoziia utilizatorului o multitudine de funcii. Unele dintre
acestea sunt intrinsece, iar altele sunt construite. De asemenea, exist funcii specifice
domeniilor de lucru ale MATLAB-ului, disponibile n modulele de instalare (MATLAB
TOOLBOX). O caracteristic important a acestui mediu este c utilizatorul i poate
construi propriile funcii, ele putnd fi apelate exact ca funciile intrinsece ale mediului.
1.4. OPERAII CU MATRICI
1.4.1.
4
5
6
7
8
0
iar:
x=[-1 0 2]
produce:
x=
-1
0
2
In principal, utilizndu-se , are loc o transpunere formal a matricii. Dac matricea
este complex, atunci A este conjugata complex transpus. Acest lucru poate
conduce uneori la rezultate eronate, mai ales n cazul lucrului cu numere complexe.
Pentru transpusa neconjugat se va utiliza A. sau conj(A).
1.4.2.
10
nmulirea matricilor
mprirea matricilor
Ridicarea la putere
Expresia A^p denot matricea A ridicat la puterea p. Operaia este valid dac
A este matrice ptratic i p este scalar.
1.5. Operaii cu tablouri
Utilizarea expresiei operaii cu tablouri se refer la operaii aritmetice
executate element cu element (spre deosebire de operaiile liniare cu matrici,
simbolizate prin * / \ ^ ). Dac un operator este precedat de un punct . atunci
nseamn c operaia este executat element cu element.
1.5.1.
Adunarea i scderea
Pentru aceste operaii, situaia este identic cu cea din cazul matricilor. Se
utilizeaz aceleai simboluri, + i -.
11
1.5.2.
nmulirea i mprirea
Ridicarea la putere
Operatori relaionali
2+2~=4
va fi 0.
Operatorii relaionali pot fi utilizai pentru localizarea elementelor unei matrici,
elemente ce satisfac anumite condiii. De exemplu, se consider o matrice magic
(matrice avnd elemente cuprinse ntre 1 i n2, avnd sumele pe linii i coloane
identice).
A=magic(6)
A=
35 1
3 32
31 9
8 28
30 5
4 36
6 26 19 24
7 21 23 25
2 22 27 20
33 17 10 15
34 12 14 16
29 13 18 11
Operaii logice
AND
OR
NOT
13
Primul dintre ei compar doi scalari sau dou matrici de dimensiuni egale.
Pentru matrici, aceti operatori lucreaz asupra elementelor corespondente. Dac A i
B sunt matrici formate din elemente 1 i 0, atunci A&B va fi o alt matrice 0-1
reprezentnd produsul logic al elementelor corespondente. Acest operator consider
orice element diferit de 0 ca fiind 1.
Operatorul NOT este un operator unar. Expresia ~A returneaz 0 acolo unde A
este non zero i 1 unde A este 0. Expresiile:
P&(~P)
P|(~P)
vor returna zerouri i respectiv elemente 1.
Funciile any i all sunt utile n conjuncie cu operatorii logici. Dac x este un
vector de elemente 1 i 0, atunci any(x) va returna 1 dac cel puin un element al lui x
este diferit de 0, i 0 n restul cazurilor. Funcia all(x) va returna 1 dac toate
elementele lui x sunt nenule. Aceste funcii sunt utile n declaraii de tipul:
if all(A<.5)
execut secven de operaii
end
Unele din funciile logice disponibile n MATLAB sunt prezentate n tabelul
urmtor:
any
all
find
exist
isnan
finite
isempty
isstr
strcmp
1.5.6.
condiie logic
condiie logic
gsete indicii valorilor logice
caut dac variabilele exist
detecteaz elemente care nu sunt numere
detecteaz valoarea infinit
detecteaz o matrice fr elemente
detecteaz iruri de caractere
compar variabile de tipul irurilor de caractere
sinus
cosinus
tangent
arc sinus
arc cosinus
arc tangent
sinus hiperbolic
cosinus hiperbolic
Elemente de baz ale mediului Matlab
tanh
asinh
acosh
atanh
tangent hiperbolic
arc sinus hiperbolic
arc cosinus hiperbolic
arc tangent hiperbolic
Funcii elementare
abs
angle
sqrt
real
imag
conj
round
sign
rem
exp
log
log10
Generarea vectorilor
Utilizarea indicilor
15
Elementele unei matrici pot fi accesate prin utilizarea indicilor lor, plasai ntre
paranteze. O expresie utilizat ca indice este rotunjit ctre cel mai apropiat ntreg.
Exemplu:
A(3,3)=A(1,3)+A(3,1)
n loc de indice se poate folosi i un vector. Dac, de exemplu, X i V sunt vectori,
atunci X(V) este [X(V(1)), X(V(2)),,X(V(n))]. Pentru matrici, indicii se pot utiliza
pentru a referi submatrici. Dac A este o matrice 10 x 10, atunci:
A(1:5,3)
va referi o submatrice cu 5 linii i o coloan, constnd din primele 5 elemente ale
coloanei 3 a matricii A. n mod identic,
A(1:5,7:10)
este o submatrice format din elementele primelor 5 rnduri ale ultimelor 4 coloane.
Dac se utilizeaz doar cele dou puncte, fr indici, atunci acestea se vor
referi la toate elementele liniilor sau coloanelor. De exemplu,
A(:,3) A(1:5,:)
reprezint a treia coloan a matricii i respectiv primele 5 rnduri ale matricii A.
Declaraia:
A(:,[3 5 10])=B(:,1:3)
va conduce la nlocuirea coloanelor 3, 5 i 10 ale matricii A cu primele 3 coloane ale
matricii B.
Funcie de plasamentul celor dou puncte, se pot ntlni situaiile:
a)
A=[1 2; 3 4; 5 6]
b=A(:)
va conduce la obinerea unui vector coloan cu toate elementele matricii A.
b) dac acestea sunt plasate n partea dreapt, ele pot fi utilizate pentru
redimensionarea unei matrici. Pentru aceasta, matricea A trebuie s existe. n aceste
condiii, A(:) denot o matrice de aceeai dimensiune cu A, dar cu coninut schimbat n
partea dreapt. Dac A are 3 rnduri i 2 coloane, atunci:
A(:)=11:16
aranjeaz un vector de ase elemente ntr-o matrice 3 x 2.
1.6.3.
Vectorii de acest gen, creai, de obicei, prin operaii relaionale, pot fi utilizai
pentru a referi submatrici. Dac, de exemplu, A este o matrice m x n i L este un vector
de lungime m, format din elemente 0 i 1, atunci:
A(L,:)
16
Matrici vide
Declaraia
x=[ ]
0.2182 -0.0921
0.4364 -0.5523
0.8729 -0.8285
D=
-1.0000
0
0
0 -2.0000
0
0
0 -3.0000
Bucla FOR
for j=n-1:-1:1
A(:,j)=t.*A(:,j+1)
end
1.7.2.
Bucla WHILE
Aceast bucl este utilizat atunci cnd se dorete executarea unei instruciuni
(sau secven de instruciuni) de un numr indefinit de ori, sub controlul unei condiii
logice. Forma general este urmtoarea:
while expresie
secven de instruciuni
end
Exemple de bucle WHILE:
n=1
while prod(1:n)<1.e100, n=n+1; end
n
E=zeros(A);
F=eye(A);
k=1;
while norm(E+F-E,1)>0
E=E+F;
F=A*F/k
k=k+1;
end
1.7.3.
Comenzile IF i BREAK
%par
%impar
19
modul de folosire a comenzilor while i if. De asemenea, sunt utilizate funciile input
(ateapt introducerea unei secvene de la tastatur) i break.
while 1
n=input(Introduceti un intreg pozitiv: );
if n<=0, break, end
while n>1
if rem(n,2)==0
n=n/2
else
n=3*n+1
end;
end
end
1.8. Trasarea graficelor n MATLAB
1.8.1.
Reprezentri bidimensionale
MATLAB poate crea diverse tipuri de grafice, cum ar fi: 2D, 3D, liniare,
logaritmice, semilogaritmice, reprezentri n coordonate polare, etc. Cteva dintre
modalitile de reprezentare a graficelor 2D sunt: plot, loglog, semilogx, semilogy,
polar i bar. Comanda grid adaug linii ajuttoare graficelor, iar comenzile title(text),
xlabel(text), ylabel(text) i text(x, y, text) pot fi utilizate pentru plasarea de
etichete sau texte pe grafice. Sintaxa comenzii pentru trasarea graficelor include i o
serie de simboluri opionale (., +, *, o, x) precum i cteva litere asignate culorilor (r,
b, g, w) cu care lucreaz mediul de programare. De exemplu, comanda:
plot(t, y1, r, t, y2, +b)
va determina trasarea unor curbe de culoare roie (y1) i respectiv albastr (y2).
Scalarea graficelor este efectuat automat. Comanda:
axis([xmin xmax ymin ymax])
foreaz o scalare manual a graficului. De exemplu, comanda:
axis([-10 40 -60 60])
va produce o reprezentare cuprins ntre -10 i 40 pe axa x i respectiv -60 i 60 pe axa
y.
n continuare se vor prezenta cteva exemple ce ilustreaz posibilitile
MATLAB-ului de a reprezenta diverse funcii.
Exemplul 1.
S se traseze n coordonate x-y evoluia:
t
0
1
2
3
4
5
6
7
8
9
10 11 12
y
0
0.55
1
2
4
7.2 11 14 15.1 16 16 16 16
Pentru un numr mic de date, acestea pot fi introduse n MATLAB utiliznd paranteze
ptrate:
20
t = [0 1 2 3 4 5 6 7 8 9 10 11 12];
y= [ 0 0.55 1 2 4 7.2 11 14 15.1 16 16 16 16];
plot(t, y)
grid
Rezultatul execuiei secvenei de comenzi anterioare este afiarea urmtorului grafic:
20
15
10
5
0
10
15
1
0 .8
0 .6
0 .4
0 .2
s in ( x ) / x
0
-0 .2
-0 .4
-1 5
-1 0
-5
0
R a d ia n
10
15
21
subplot va mpri spaiul pentru trasarea graficelor n mai multe subspaii, aceast
posibilitate de lucru fiind util atunci cnd se dorete trasarea mai multor grafice n
acelai timp. Comanda subplot(mnp) mparte spaiul n m x n subspaii, utilizndu-l pe
cel cu numrul de ordine p pentru reprezentarea grafic. Acest lucru este demonstrat n
exemplul urmtor.
Exemplul 3.
a) s se traseze grafic funcia v=120 sint i i=100sin(t-/4) n raport cu t (n
colul din stnga sus).
b) s se traseze p=vi (dreapta sus).
c) dac Fm=3.0, s se traseze fa=Fmsint, fb=Fmsin(t-2/3) i fc=Fmsin(t-4/3)
funcie de t (stnga jos).
d) dac fR=3Fm, s se construiasc o reprezentare n coordonate polare (dreapta jos).
clg
wt=0 : 0.05: 3*pi;
i=100*sin(wt-pi/4);
v=120*sin(wt);
p=v.*i;
subplot(221), plot(wt, v, wt, i)
title( tensiune si curent)
xlabel(wt - radiani);
%terge fereastra
subplot(222), plot(wt, p)
title(Putere)
xlabel(wt - radiani);
ylabel(Watt);
%puterea instantanee
%puterea instantanee
%trasare v i i n raport cu wt
Fm=3.0
fa=Fm*sin(wt);
fb=Fm*sin(wt-2*pi/3);
fc=Fm*sin(wt-4*pi/3);
subplot(223), plot(wt, fa, wt, fb, wt, fc)
title(Faze);
xlabel(wt - radiani);
fR=3/2*Fm*(wt+1). /(wt+1);
subplot(224), polar(wt, fR)
title(Coord. Polare)
Rezultatul execuiei comenzilor de mai sus este prezentat n figura urmtoare:
22
t e n s iu n e s i c u r e n t
200
100
10000
5000
W a tt
-1 0 0
-2 0 0
5
w t - r a d ia n i
Faze
10
-5 0 0 0
2
0
5
10
w t - r a d ia n i
C o o r d . P o la r e
906
120
60
4
150
30
2
180
-2
-4
P u te re
15000
210
330
240
5
w t - r a d ia n i
10
270
300
Reprezentri tridimensionale
23
plot (f)
Dac la prompterul mediului se tasteaz f , atunci se va executa secvena anterioar ce
calculeaz o secven a numerelor Fibonacci.
1.9.2.
Dac prima linie a unui fiier conine cuvntul function, atunci fiierul este de
tip funcie. O funcie difer de un fiier text prin aceea c argumentele pot fi transmise,
variabilele definite i manipulate n interiorul fiierului fiind locale. De exemplu, o
funcie pentru calcularea valorii medii este urmtoarea:
function y=medie(x)
%Calculeaza media.
%Pentru vectori returneaza media elementelor.
%Pentru matrici returneaza un vector linie ce contine
%media elementelor fiecarei coloane a matricii.
[m,n]=size(x);
if m==1
m=n
end
y=sum(x)/m;
Existena acestui fiier definete o nou funcie MATLAB. Presupunnd c
numele fiierului este medie.m, atunci aceast funcie poate fi utilizat ca oricare alta.
Elementele ce apar la un fiier funcie sunt:
25