Documente Academic
Documente Profesional
Documente Cultură
Descriere:
n momentul execuiei instruciunii for, valoarea index parcurge intervalul [start, sfrit], cu pasul
de parcurgere stabilit prin increment. Pentru fiecare valoare a lui index, se execut n mod repetat
una sau mai multe instruciuni.
Incrementul implicit este 1. n acest caz el nu mai trebuie specificat. Incrementul poate lua i valori
negative, caz n care valoarea index descrete.
Exemple:
1. S se construiasc irul x, coninnd primele n puteri ale lui 2. Valoarea n se va citi de la tastatur.
% Script pentru calculul puterilor lui 2
n = input('Introduceti numarul de elemente: ');
x = []; % sau clear x
x(1)=1;
for m = 2:n
x(m) = 2 * x(m - 1);
end
display(x)
11 | P a g e
%% calcul suma
for m = 1:row-1
for n=1:row-m
suma = suma + A(m, n);
end
end
%% afisare
disp(['Suma este: ', num2str(suma)])
Cazul 1
Introduceti matricea A:
[1 2 3 4;
5 6 7 8;
9 0 -1 -2;
-3 -4 -5 -6]
Suma este: 26
Cazul 2
Introduceti matricea A:
[1 2 3;
4 5 6]
Matricea nu este patrata!
Sf C1, 25/02/15.
1.2 Instruciunea while-end
Instruciunea while corespunde structurii repetitive condiionate anterior, din programarea structurat.
Sintax:
while expresie
instruciuni
end
Descriere:
Instruciunea while este folosit pentru executarea unui grup de instruciuni n mod repetat, ct timp
expresia de control este adevrat.
Dac expresie este evaluat la o matrice (nu este un scalar), atunci toate elementele acesteia trebuie
s aib valoarea logic adevrat, pentru ca execuia s continue.
Exemple:
1. S se determine primul numr ntreg n pentru care n! este un numr cu 50 de cifre. Se va folosi
funcia factorial().
% primul numar intreg n pentru care n! este un numar cu 50 de cifre
n = 1;
while factorial(n) < 1e49 % 10^49 are 50 de cifre
n = n + 1;
end
disp(['Numarul este: ', num2str(n)])
disp(['n! = ', num2str(factorial(n))])
12 | P a g e
Sintax:
break
Descriere:
Instruciunile care apar dup instruciunea break, din corpul unui ciclu for sau while, vor fi ignorate.
Urmtoarea instruciune care se execut este cea care urmeaz dup instruciunea end, de nchidere a
ciclului.
Exemple:
1. S se citeasc de la tastatur un ir de maxim 30 de caractere care s nu conin caracterul punct (.).
Citirea se va ncheia dac se introduce caracterul punct.
% citire sir max 30 caractere, fara punct
str = [];
disp('Introduceti sirul de caractere.')
disp('Tastati enter dupa fiecare caracter introdus:')
n = 1;
while n <= 30
str(n) = input('','s');
if str(n) == '.'
break
end
n = n + 1;
end
disp(['Sirul introdus este: ', char(str)])
Descriere:
Instruciunile care rmn n corpul unui ciclu, dup instruciunea continue, vor fi ignorate. Execuia se
reia de la nceputul ciclului unde a fost ntlnit instruciunea continue.
Exemple:
1. S se citeasc de la tastatur un ir de 10 de caractere. n cazul n care se citete caracterul punct (.),
acesta se va ignora.
% citire sir 10 caractere, fara punct
str = [];
disp('Introduceti sirul de caractere.')
disp('Tastati enter dupa fiecare caracter introdus:') Conf.dr.ing. Ovidiu-Aurelian Detean
Programare si limbaje II Curs 1. Instruciuni de control al ciclurilor
13 | P a g e
n = 1;
while n <= 10
str(n) = input('','s');
if str(n) == '.'
continue
end
n = n + 1;
end
disp(['Sirul introdus este: ', char(str), ' si are ',num2str(n-1), '
caractere.'])
Descriere:
Instruciunea return, de control al terminrii programului, permite ieirea din program din orice punct al
su, nainte de punctul normal de terminare.
return mai este folosit i pentru a incheia modul keyboard.
1|Page
Programare si limbaje II
Anul I, AR+ITT
1 Recapitulare
Curs 1 + Laborator 3
1.1 Comenzi
if
else
elseif
end
switch
case
otherwise
for
while
break
continue
return
keyboard
1.2 Funcii
isprime()
isscalar()
num2str()
str2num()
factorial()
Descriere:
Instruciunea function definete funcia nume_functie, care accept valorile de intrare in1, in2,
... i returneaz valorile de ieire out1, out2, ... .
2.1.1 Reguli de denumire a unei funcii
1. Numele funciei trebuie obligatoriu s nceap cu o liter i poate conine caractere alfanumerice i
caracterul underscore (_). Numrul maxim de caractere din numele unei funcii trebuie s fie mai mic
sau egal cu dimensiunea maxim permis de ctre implementarea specific MATLAB.
Pentru verificarea dimensiunii maxime, se folosete comanda namelengthmax.
De exemplu, versiunea R2009b permite definirea de funcii cu nume de maxim 63 caractere.
>> version Conf.dr.ing. Ovidiu-Aurelian Detean Programare si limbaje II Curs 2. Funcii definite de utilizator
2|Page
ans =
7.9.0.529 (R2009b)
>> namelengthmax
ans =
63
n cazul n care numrul de caractere este mai mare, MATLAB va folosi doar primele 63 de caractere (n
acest caz) pentru identificarea funciei respective.
Deoarece numele de funcii respect aceleai reguli ca i numele de variabile, se poate folosi funcia
isvarname() pentru verificarea valabilitii numelui de funcie ales. Rezultatul este de tip boolean.
Exemple de nume valide sau invalide de funcii:
>> isvarname ipotenuza
ans =
1
>> isvarname Inf
ans =
1
>> isvarname _functie
ans =
0
>> isvarname NumeFoaaaarteLuuungDeFunctie
ans =
1
>> islogical(ans)
ans =
1
2. Numele unei funcii nu poate fi acelai cu al unui cuvnt cheie MATLAB. Verificarea unui cuvnt cheie
MATLAB se face cu ajutorul comenzii iskeyword.
>> iskeyword
ans =
'break'
'case'
'catch'
'classdef'
'continue'
'else'
'elseif'
'end'
'for'
'function'
'global'
'if'
'otherwise'
'parfor'
'persistent'
'return'
'spmd'
'switch'
'try'
'while'
3. Numele funciei definite ntr-un fiier M de tip funcie trebuie s coincid cu numele fiierului, cu
excepia extensiei .m. n cazul n care numele funciei i numele fiierului nu coincid, numele intern al
funciei va fi ignorat. De exemplu, funcia tg() definit ntr-un fiier cu numele tangenta.m, va fi apelat
prin expresia tangenta.
O funcie nu se poate defini ntr-un fiier script sau n fereastra de comenzi.
Dac o funcie are mai multe argumente de intrare, acestea se vor include ntre paranteze rotunde,
dup numele funciei, separate prin virgul:
function aria = dreptunghi(lungime, latime)
Parametrii transmii funciei (parametrii actuali) nu este obligatoriu s coincid ca nume cu cei linia de
definire a funciei (parametrii formali), dar trebuie s coincid ca i numr, tip i ordine.
2.1.3 Sfritul unei funcii
O funcie se poate ncheia fie la intlnirea instruciunii end, fie la ntlnirea unei alte linii de definire a
unei funcii, fie la sfritul fiierului M n care este definit. Utilizarea instruciunii end la final este
obligatorie doar dac funcia definit conine una sau mai multe funcii imbricate.
2.2 Spaiul variabilelor unei funcii
Fiecare funcie definit ntr-un fiier M are alocat o zon de memorie, diferit de spaiul global al
variabilelor (Workspace), n care ea funcioneaz. Aceast zon se numete spaiul variabilelor funciei
(Function Workspace) i reprezint contextul propriu de lucru al funciei date.
2.3 Exemplu de definire a unei funcii
ipotenuza.m
function c = ipotenuza( a, b )
%IPOTENUZA - Calculeaza ipotenuza unui triunghi dreptunghic, pe baza
%catetelor sale
% Sintaxa: c = ipotenuza( a, b )
c = sqrt(a^2 + b^2);
end
Apelul funciei:
>> ipotenuza(2,3)
ans =
3.6056
>> ipotenuza(3,4)
ans =
5
4|Page
5|Page
%PERIMETRU( raza )
% calculeaza perimetrul unui cerc
per = 2 * pi * raza;
end
function ari = arie( raza )
%ARIE( raza )
% calculeaza aria unui cerc
ari = pi * raza^2;
end
end
Exemplu:
>> patrat = @(x) x^2
patrat =
@(x)x^2
6|Page
Overloaded methods:
opaque/disp
MException/disp
inline/disp
cdfepoch/disp
timer/disp
serial/disp
memmapfile/disp
ftp/disp
mmreader/disp
audiorecorder/disp
audioplayer/disp
ccsstructure/disp
ccsstring/disp
ccsrtdx/disp
ccspointer/disp
ccsnumeric/disp
ccsfunction/disp
ccsenum/disp
ccsdebug/disp
ccsbitfield/disp
seqgen.disp
modem.disp
fittype/disp
cfit/disp
digitalio/disp
daqchild/disp
analogoutput/disp
analoginput/disp
distribution2d/disp
distribution1d/disp
distributed/disp
codistributor2d/disp
codistributor1d/disp
codistributed/disp
quantizer/disp
qfft/disp
strel/disp
imagemodel/disp
imaqdevice/disp
imaqchild/disp
iviconfigurationstore/disp
instrument/disp
icgroup/disp
xregpointer/disp
ghsmulti/disp
network/disp
opcda/disp
daitem/disp
dagroup/disp
piecewisedistribution/disp
gmdistribution/disp
classregtree/disp
dataset/disp
categorical/disp
sym/disp
vdspdebug/disp
vrworld/disp
vrnode/disp
vrfigure/disp
wptree/disp
wdectree/disp
ntree/disp
laurpoly/disp
laurmat/disp
dtree/disp
Reference page in Help browser
doc disp
Se observ c dup afiarea informaiilor help despre funcia de baz, apare lista Overloaded methods,
n care sunt afiate toate funciile suprancrcate, avnd acelai nume, disp, denumite n programarea
obiectual, metode.
Pentru a verifica toate apariiile funciei suprancrcate disp(), se folosete comanda: Conf.dr.ing. OvidiuAurelian Detean Programare si limbaje II Curs 2. Funcii definite de utilizator
7|Page
C:\Program Files\MATLAB\R2008b\toolbox\distcomp\parallel\@distribution1d\disp.m %
distribution1d method
C:\Program Files\MATLAB\R2008b\toolbox\distcomp\parallel\@distributed\disp.m %
distributed method
C:\Program Files\MATLAB\R2008b\toolbox\distcomp\parallel\@codistributor2d\disp.m %
codistributor2d method
C:\Program Files\MATLAB\R2008b\toolbox\distcomp\parallel\@codistributor1d\disp.m %
codistributor1d method
C:\Program Files\MATLAB\R2008b\toolbox\distcomp\parallel\@codistributed\disp.m %
codistributed method Conf.dr.ing. Ovidiu-Aurelian Detean Programare si limbaje II Curs 2. Funcii definite de
utilizator
8|Page
C:\Program Files\MATLAB\R2008b\toolbox\filterdesign\quantization\@quantizer\disp.m %
quantizer method
C:\Program Files\MATLAB\R2008b\toolbox\filterdesign\quantization\@qfft\disp.m % qfft
method
C:\Program Files\MATLAB\R2008b\toolbox\images\images\@strel\disp.m % strel method
C:\Program Files\MATLAB\R2008b\toolbox\images\imuitools\@imagemodel\disp.m %
imagemodel method
C:\Program Files\MATLAB\R2008b\toolbox\imaq\imaq\@imaqdevice\disp.m % imaqdevice
method
C:\Program Files\MATLAB\R2008b\toolbox\imaq\imaq\@imaqchild\disp.m % imaqchild method
C:\Program
Files\MATLAB\R2008b\toolbox\instrument\instrument\@iviconfigurationstore\disp.m %
iviconfigurationstore method
C:\Program Files\MATLAB\R2008b\toolbox\instrument\instrument\@instrument\disp.m %
instrument method
C:\Program Files\MATLAB\R2008b\toolbox\instrument\instrument\@icgroup\disp.m % icgroup
method
C:\Program Files\MATLAB\R2008b\toolbox\mbc\mbc\@xregpointer\disp.m % xregpointer
method
C:\Program Files\MATLAB\R2008b\toolbox\multilink\multilink\@ghsmulti\disp.m % ghsmulti
method
C:\Program Files\MATLAB\R2008b\toolbox\nnet\nnet\@network\disp.m % network method
C:\Program Files\MATLAB\R2008b\toolbox\opc\opc\@opcda\disp.m % opcda method
C:\Program Files\MATLAB\R2008b\toolbox\opc\opc\@daitem\disp.m % daitem method
C:\Program Files\MATLAB\R2008b\toolbox\opc\opc\@dagroup\disp.m % dagroup method
C:\Program Files\MATLAB\R2008b\toolbox\stats\@piecewisedistribution\disp.m %
piecewisedistribution method
C:\Program Files\MATLAB\R2008b\toolbox\stats\@gmdistribution\disp.m % gmdistribution
method
C:\Program Files\MATLAB\R2008b\toolbox\stats\@classregtree\disp.m % classregtree
method
C:\Program Files\MATLAB\R2008b\toolbox\shared\statslib\@dataset\disp.m % dataset
method
C:\Program Files\MATLAB\R2008b\toolbox\shared\statslib\@categorical\disp.m %
categorical method
C:\Program Files\MATLAB\R2008b\toolbox\symbolic\@sym\disp.m % sym method
C:\Program Files\MATLAB\R2008b\toolbox\vdsplink\vdsplink\@vdspdebug\disp.m % vdspdebug
method
C:\Program Files\MATLAB\R2008b\toolbox\vr\vr\@vrworld\disp.m % vrworld method
C:\Program Files\MATLAB\R2008b\toolbox\vr\vr\@vrnode\disp.m % vrnode method
C:\Program Files\MATLAB\R2008b\toolbox\vr\vr\@vrfigure\disp.m % vrfigure method
C:\Program Files\MATLAB\R2008b\toolbox\wavelet\wavelet\@wptree\disp.m % wptree method
C:\Program Files\MATLAB\R2008b\toolbox\wavelet\wavelet\@wdectree\disp.m % wdectree
method
C:\Program Files\MATLAB\R2008b\toolbox\wavelet\wavelet\@ntree\disp.m % ntree method
C:\Program Files\MATLAB\R2008b\toolbox\wavelet\wavelet\@laurpoly\disp.m % laurpoly
method
C:\Program Files\MATLAB\R2008b\toolbox\wavelet\wavelet\@laurmat\disp.m % laurmat
method
C:\Program Files\MATLAB\R2008b\toolbox\wavelet\wavelet\@dtree\disp.m % dtree method
Conf.dr.ing. Ovidiu-Aurelian Detean Programare si limbaje II Curs 2. Funcii definite de utilizator
9|Page
La apelul funciei cerc(), aceasta apeleaz, la rndul ei, funciile private perimetru() i arie().
>> [p a]=cerc(5)
p =
31.4159
a =
78.5398
Pentru afiarea informaiilor de tip help despre funciile private, numele acestora se prefixeaz cu
expresia private/.
1|Page
Programare si limbaje II
Anul I, AR+ITT
1 Recapitulare
1.2 Funcii
isvarname()
2|Page
3|Page
Opiunea 'real' presupune c variabila simbolic este de tip real, adic partea imaginar este zero.
Opiunea 'positive' creeaz o variabil simbolic este de tip real i pozitiv.
Opiunea 'clear' construiete variabile simbolice pur formale, fr proprieti suplimentare. Din
motive de compatibilitate cu versiunile anterioare, opiunea 'unreal' are exact acelai efect.
Parametrul flag Reprezentare
poate lua valorile:
'r', 'd', 'e',
sau 'f' i
convertete o
constant scalar
sau matriceal la
forma simbolic.
Parametrul flag
'r'
Raional
'd'
Zecimal
'e'
Estimare de erori
'f'
Virgul flotant
1|Page
Programare si
limbaje II
Anul I, AR+ITT
1 Recapitulare
Curs 3 +
Laborator 5 +
Laborator 6
1.1 Comenzi
syms
1.2 Funcii
acos()
acosd()
acosh()
acot()
acotd()
acoth()
asin()
asind()
asinh()
atan()
atan2()
atand()
atanh()
cos()
cosd()
cosh()
cot()
cotd()
coth()
hypot()
sin()
sind()
sinh()
tan()
tand()
tanh()
exp()
expm1()
log()
log10()
log1p()
nextpow2()
nthroot()
reallog()
realsqrt()
sqrt()
sym()
subs()
Conf.dr.ing. OvidiuAurelian Detean
Programare si
limbaje II Curs 4.
Reprezentri grafice
2D i 3D n
MATLAB
2|Page
Recapitular
e parial a
elementelor
de limbaj
MATLAB
1.1 Operatori
Operatori
aritmetici
Operatori
relaionali
Operatori logici
Operatori pe bii
Operatori pe
mulimi
1.2 Comenzi
break
case
continue
demo
diary
doc
echo
edit
else
elseif
end
for
format
function
help
if
iskeyword
keyboard
load
more
namelengthmax
open
otherwise
return
save
switch
syms
type
version
while
whos
1.3 Variabile
ans
1.4 Constante
eps
false
i
Inf
j
NaN
pi
true
1.5 Funcii
acos()
acosd()
acosh()
acot()
Conf.dr.ing. OvidiuAurelian Detean
Programare si
limbaje II Curs 4.
Reprezentri grafice
2D i 3D n
MATLAB
3|Page
acotd()
acoth()
asin()
asind()
asinh()
atan()
atan2()
atand()
atanh()
cellplot()
char()
cos()
cosd()
cosh()
cot()
cotd()
coth()
cumprod()
cumsum()
det()
diag()
disp()
display()
double()
exp()
expm1()
eye()
factorial()
find()
full()
functions()
geomean()
hypot()
input()
int16()
int32()
int64()
int8()
intmax()
intmin()
inv()
ischar()
isfinite()
isinf()
isnan()
isprime()
isscalar()
issparse()
isvarname()
length()
log()
log10()
log1p()
logical()
magic()
max()
mean()
mean()
min()
nextpow2()
nnz()
nonzeros()
nthroot()
num2str()
ones()
plot()
prod()
rand()
randn()
Conf.dr.ing. OvidiuAurelian Detean
Programare si
limbaje II Curs 4.
Reprezentri grafice
2D i 3D n
MATLAB
4|Page
reallog()
realmax()
realmin()
realsqrt()
repmat()
round()
sin()
sind()
single()
sinh()
size()
sort()
sparse()
speye()
spones()
sprintf()
spy()
sqrt()
sscanf()
str2num()
struct()
subs(S)
sum()
sym()
tan()
tand()
tanh()
title()
tril()
triu()
uint16()
uint32()
uint64()
uint8()
xlabel()
ylabel()
zeros()
1.6 Caractere
speciale
. Punct
zecimal
. Operaii cu
tablouri
( )
Parantezele
rotunde
[ ]
Parantezele
ptrate
, Virgula
; Punct
virgul
: Dou puncte
@numefunctie
{ } Acolade
% Comentariu
%% Celule de
cod
Conf.dr.ing. OvidiuAurelian Detean
Programare si
limbaje II Curs 4.
Reprezentri grafice
2D i 3D n
MATLAB
5|Page
Curs 4.
Reprezentr
i grafice 2D
i 3D n
MATLAB
4.1
Reprezentri
grafice 2D
Grafice pentru
funciile cu o
singur variabil.
4.1.1
Reprezentarea
funciilor
elementare.
Funcia plot()
Sintax:
plot(Y)
plot(X1,Y1,..
.)
plot(X1,Y1,Li
neSpec,...)
plot(...,'Prop
ertyName',Prop
ertyValue,...
)
plot(axes_han
dle,...) h =
plot(...)
hlines =
plot('v6',...
)
plot(Y)
reprezint grafic
coloanele
tabloului Y n
raport cu indicele
acestora, dac Y
este un tablou de
numere reale.
Dac Y conine
valori complexe,
plot(Y) este
echivalent cu
plot(real(Y),
imag(Y)). n
toate celelalte
cazuri de utilizare
ale lui plot,
componenta
imaginar este
ignorat.
Observaie:
real(Y)
returneaz partea
real a variabilei
complexe Y.
imag(Y)
returneaz partea
imaginar a
variabilei
complexe Y.
plot(X1,Y1,..
.) reprezint
ploteaz toate
liniile definite de
tripletele
Xn,Yn,LineSpe
c, unde
LineSpec este
un specificator de
linie, care
determin tipul
de linie, simbolul
punctelor de pe
grafic i culoarea
liniei trasate.
Tripletele
Xn,Yn,LineSpe
c pot fi
combinate cu
pereche de forma
Xn,Yn, astfel:
plot(X1,Y1,X2
,Y2,LineSpec,
X3,Y3).
4.1.2 Definirea
stilurilor i
culorilor de
linie
4.1.2.1
Specificarea
tipului de linie
n
reprezentrile
2D. Opiunea
LineSpec
Proprietile liniei
utilizate pentru
reprezentrile
grafice pot fi
specificate de
ctre
programator,
astfel nct s
acesta s dein
controlul asupra:
Stilului de
linie;
Grosimii liniei;
Culorii;
Tipului de
marker;
Mrimii
marker-ului;
Culorii
conturului
marker-ului;
Culorii
interiorului
marker-ului.
Stilurile de linie,
tipurile de
markeri i culorile
dorite pot fi
specificate prin
iruri de
caractere, pe
baza
urmtoarelor
tabele:
Tab. 4.1
Specificatori de
stiluri de linie
Specificator
Stil de linie
-
Linie continu
(implicit)
--
Linie ntrerupt
Conf.dr.ing. OvidiuAurelian Detean
Programare si
limbaje II Curs 4.
Reprezentri grafice
2D i 3D n
MATLAB
6|Page
:
Linie punctat
-.
Linie-punct
Tab. 4.2
Specificatori de
marker
Specificator
Stil de marker
+
Semn plus
O
Cerc
*
Asterisc
.
Punct
(dimensiunea se
schimb doar
dac valoarea
specificat este
mai mare sau
egal cu 5)
X
Cruce oblic
'square' or s
Ptrat
'diamond' or
d
Diamant (romb)
^
Triunghi cu vrful
n sus
V
Triunghi cu vrful
n jos
>
Triunghi cu vrful
la dreapta
<
Triunghi cu vrful
la stnga
'pentagram'
or p
Stea cu cinci
coluri
(pentagram)
'hexagram' or
h
Stea cu ase
coluri
(hexagram)
Tab. 4.3
Specificatori de
culoare
Specificator
Culoare
R
Rou
G
Verde
B
Albastru
C
Cyan (albastru
deschis)
M
Magenta
Y
Galben
K
Negru
W
Alb
Ex1. S se
reprezinte grafic
funcia sin(x), pe
intervalul [0, 2],
cu pasul de
parcurgere /12,
folosind linie
punctat, marker
triunghi cu vrful
n sus, att
markerul, ct i
linia
reprezentndu-se
prin culoarea
verde.
Fiierul script
C04S1.m
a
=
b
=
h
=
= input('a
');
= input('b
');
= input('h
');
x = a:h:b;
y = sin(x);
plot(x, y,
':^g')
n urma rulrii, se
introduc
urmtoarele date:
a=0
b = 2*pi
h = pi/12
i se obine
graficul din figura
4.1.
Conf.dr.ing. OvidiuAurelian Detean
Programare si
limbaje II Curs 4.
Reprezentri grafice
2D i 3D n
MATLAB
7|Page
Fig. 4.1 Graficul
funciei sin(x),
folosind opiunile
':^g'
Dac se dorete
reprezentarea
grafic a unei
funcii fr linia
ce unete
markerii, stilul de
linie nu trebuie
specificat n
opiunea
LineSpec. De
exemplu, n figura
4.2, se utilizeaz
marker-ul 'd', de
culoare roie, fr
linie.
Fig. 4.2 Graficul
funciei sin(x),
folosind opiunile
'dr'
4.1.2.2
Specificarea
culorii.
Opiunea
ColorSpec
Exist trei moduri
de a specifica o
culoare n
MATLAB:
Tripletul RGB;
Numele scurt;
Numele lung.
Tripletul RGB este
un vector linie cu
trei elemente,
reprezentnd
intensitile, n
domeniul [0, 1],
ale
componentelor R
(Red - Rou), G
(Green - Verde) i
B (Blue - Albastru)
ale culorii.
Conf.dr.ing. OvidiuAurelian Detean
Programare si
limbaje II Curs 4.
Reprezentri grafice
2D i 3D n
MATLAB
8|Page
n tabelul 4.4 sunt
prezentate
echivalenele
ntre cele trei
moduri de
specificare ale
aa-numitelor
culori fixe (cele
opt culori
predefinite).
Tab. 4.4 Modurile
de specificare ale
culorilor
predefinite
Triplet RGB
Nume scurt
Nume lung
[1 1 0]
y
yellow
[1 0 1]
m
magenta
[0 1 1]
c
cyan
[1 0 0]
r
red
[0 1 0]
g
green
[0 0 1]
b
blue
[1 1 1]
w
white
[0 0 0]
K
black
Modificarea
culorii de fundal a
ferestrei grafice
se obine apelnd
funcia
whitebg(Color
Spec). De
exemplu,
obinerea culorii
albastru pe
fundalul ferestrei
de tip figur (fig.
4.3) se realizeaz
folosind apelul
whitebg('blue')
, a se vedea
fiierul script
C04S2.m.
Deoarece noile
figuri definite
utilizeaz ultima
culoare de fundal
definit, pentru
revenirea la
culoarea
implicit, se va
folosi apelul
whitebg('w').
Fig. 4.3 Graficul
funciei sin(x), pe
fundal albastru
Ex2. S se
reprezinte grafic
funcia sin(x), pe
intervalul [0, 2],
cu pasul de
parcurgere /12,
folosind linie
punctat, marker
triunghi cu vrful
n sus, att
markerul, ct i
linia
reprezentndu-se
prin culoarea
rou. Se va alege
drept culoare de
fundal, albastru.
Fiierul script
C04S2.m
a = input('a =
');
b = input('b =
');
h = input('h =
');
x = a:h:b;
y = sin(x);
whitebg('blue')
plot(x, y,
':^r')
whitebg('w')
Pentru obinerea
culorii roz pe
fundalul zonei
axelor (fig. 4.4),
se folosete
funcia
set(gcf,'Colo
r',[1,0.4,0.6
])
unde gcf
reprezint
manipulatorul
figurii curente.
Forma general a
funciei set() este
urmtoarea:
set(H,'Property
Name',Propert
yValue,...)
Conf.dr.ing. OvidiuAurelian Detean
Programare si
limbaje II Curs 4.
Reprezentri grafice
2D i 3D n
MATLAB
9|Page
n exemplul de
mai sus,
proprietatea
figurii curente,
care urmeaz s
fie modificat,
poart numele
'Color', iar
valoarea acesteia
va fi specificat
prin tripletul RGB
reprezentat de
vectorul linie [1,
0.4, 0.6].
Fig. 4.4 Graficul
funciei cu
opiunile din fig
4.2, dar cu fundal
roz pe zona
axelor
4.1.2.3
Specificarea
altor
caracteristici
ale liniei i
markerilor
LineWidth
specific
grosimea liniei, n
puncte (1 punct =
1/72 inci).
Grosimea
implicit este de
0.5 puncte.
MarkerEdgeCol
or seteaz
culoarea
conturului
markerului,
pentru markerii
de tip contur
nchis: cerc,
ptrat, romb,
pentagram,
hexagram,
triunghi. Culoarea
se poate specifica
folosind opiunea
ColorSpec.
Opiunea none
determin
desenarea unui
contur
transparent.
MarkerFaceCol
or seteaz
culoarea de
umplere a
markerilor de tip
contur nchis.
Culoarea de
umplere se poate
specifica folosind
opiunea
ColorSpec.
Opiunea none
produce un
interior
transparent de
marker.
MarkerSize
specific mrimea
unui marker, n
puncte. Valoarea
implicit este de
6 puncte.
Markerul de tip
punct este
reprezentat la o
dimensiune de
1/3 din mrimea
specificat.
Ex3. S se
reprezinte grafic
funcia cos(*),
unde parcurge
intervalul [-, ],
cu pasul de
parcurgere /10,
iar parcurge
intervalul [1, 10],
acesta fiind
mprit n acelai
numr de puncte
ca i intervalul
parcurs de
variabila .
Graficul se va
reprezenta prin
linie continu,
albastr, cu
markeri n form
de cerc, grosimea
liniei va fi de 2
puncte, culoarea
conturului
markerilor va fi
mov, mrimea
markerilor va fi
de 8 puncte, iar
culoarea de
umplere a
acestora va fi
galben.
Fiier script
C04S3.m
omega = pi:pi/10:pi;
tau =
1:9/(length(o
mega)-1):10;
y =
cos(omega.*ta
u);
plot(omega,y,
'bo','LineWidt
h',2,...
'MarkerEdgeCo
lor',[0.5 0
1],...
'MarkerFaceCo
lor','y',...
'MarkerSize',
8)
Conf.dr.ing. OvidiuAurelian Detean
Programare si
limbaje II Curs 4.
Reprezentri grafice
2D i 3D n
MATLAB
10 | P a g e
Fig. 4.5 Graficul
funciei cos(*)
4.1.3 Stabilirea
titlului si a
etichetelor
axelor.
Funciile title(),
xlabel(),
ylabel().
Afiarea de
text formatat
Titlul unui grafic
reprezint un ir
de caractere
afiat deasupra
zonei de
reprezentare
grafic. El poate fi
specificat folosind
funcia title().
Exemplu: pentru
graficul
reprezentat n fig.
4.5, s se
stabileasc un
titlu sugestiv.
Prin adugarea
liniei
title('Graficul
functiei
cos(\omega*\tau
)',
'FontWeight',
'bold')
imediat dup
apelul funciei
plot(), va aprea
rezultatul din fig.
4.6.
De remarcat c
literele greceti
i au fost scrise
folosind
secvenele
\omega i \tau,
incluse n irul de
caractere din
descrierea titlului.
Fig. 4.6
Specificarea unui
titlu graficului
funciei cos(*)
Conf.dr.ing. OvidiuAurelian Detean
Programare si
limbaje II Curs 4.
Reprezentri grafice
2D i 3D n
MATLAB
11 | P a g e
Lista comenzilor
TeX care pot fi
utilizate pentru a
produce apariia
caracterelor
speciale n
legend este
prezentat n
tabelul 4.5.
Tab. 4.5 Caractere
speciale i
secvene prin
care acestea pot
fi reproduse n
MATLAB
Character
Sequence Symbol
Character
Sequence Symbol
Character
Sequence Symbol
\alpha
\upsilon
\sim ~ \beta
\phi \leq
\gamma \chi
\infty
\delta \psi
\clubsuit
\epsilon
\omega
\diamondsuit
\zeta
\Gamma
\heartsuit
\eta \Delta
\spadesuit
\theta
\Theta
\leftrightarr
ow
\vartheta
\Lambda
\leftarrow
\iota \Xi
\uparrow
\kappa \Pi
\rightarrow
\lambda
\Sigma
\downarrow
\mu \Upsilon
\circ \nu
\Phi \pm
\xi \Psi
\geq \pi
\Omega
\propto
\rho \forall
\partial
\sigma
\exists
\bullet
\varsigma
\ni \div
\tau \cong
\neq \equiv
\approx
\aleph \Im
\Re \wp
\otimes
\oplus
\oslash \cap
\cup
\supseteq
\supset
\subseteq
\subset
\int \in
\o \rfloor
\lceil
\nabla
\lfloor
\cdot \ldots
... \perp \neg
\prime
\wedge
\times x \0
\rceil \surd
\mid | \vee
\varpi
\copyright
\langle
\rangle
Conf.dr.ing. OvidiuAurelian Detean
Programare si
limbaje II Curs 4.
Reprezentri grafice
2D i 3D n
MATLAB
12 | P a g e
Etichetele unui
grafic reprezint
iruri de caractere
afiate n
apropierea
axelor, cu scopul
de a oferi
informaii despre
coninutul
valorilor de pe
axele respective.
Ele pot fi
specificate
folosind funciile
xlabel(), ylabel(),
pe graficele 2D,
respectiv
xlabel(), ylabel()
i zlabel() pe
graficele 3D.
Exemplu: pentru
graficul
reprezentat n fig.
4.6, s se
stabileasc
etichete sugestive
pe axe.
Prin adugarea
liniilor:
xlabel('\omeg
a')
ylabel('cos(\
omega*\tau)')
imediat dup
apelul funciei
title(), va aprea
rezultatul din fig.
4.7.
Fig. 4.7
Specificarea
etichetelor pe
axele graficului
funciei cos(*)
4.1.4 Afiarea
grilei.
Comanda grid
Grila reprezint
un set de linii
orizontale i
verticale,
prezente ntr-o
fereastr grafic,
cu rolul de a
facilita
interpretarea
graficului sau
culegerea de date
de pe graficul
funciei
reprezentate.
Exemplu: pentru
graficul
reprezentat n fig.
4.7, s se afieze
grila.
Prin adugarea
liniei:
grid on
imediat dup
apelul funciei
ylabel(), va
aprea rezultatul
din fig. 4.8.
Comanda grid n
varianta
grid off
va realiza
dezactivarea
grilei.
Conf.dr.ing. OvidiuAurelian Detean
Programare si
limbaje II Curs 4.
Reprezentri grafice
2D i 3D n
MATLAB
13 | P a g e
Fig. 4.8 Afiarea
grilei pentru
graficul funciei
cos(*)
4.1.5
Reprezentri
grafice multiple
n situaia n care
este necesar
reprezentarea
mai multor
grafice n aceeai
fereastr de tip
figur, se pot
specifica la apelul
funciei plot() mai
multe seturi de
date care s fie
reprezentate,
fiecare cu setrile
respective de stil
de linie, markeri
etc.
Ex4. S se
reprezinte
simultan graficele
funciilor sin 2x,
respectiv cos 2x,
n acelai sistem
de axe carteziene,
pentru valorile lui
x cuprinse n
intervalul [0, ].
S se reprezinte
titlul graficelor,
etichetele pe axe,
grila.
Fiierul script
C04S4.m
x = 0:pi/20:pi;
y1 = sin(2*x);
y2 = cos(2*x);
plot(x,y1,'b',x,y2,'g--',
'LineWidth', 2)
title('Reprezen
tari grafice
multiple')
xlabel('Valoril
e lui x')
ylabel('sin(2*x
), cos(2*x)')
grid on
14 | P a g e
Fig. 4.9
Reprezentri
grafice multiple
4.1.6 Definirea
legendei.
Funcia
legend()
n cazul
reprezentrilor
grafice multiple,
pentru a face
distincie ntre
reprezentrile
grafice, este util
definirea unei
legende. n acest
scop se va folosi
funcia legend().
Adugnd la
scriptul C04S4.m
linia
legend('sin(2*x
)', 'cos(2*x)')
aceasta va
produce apariia
legendei,
prezente n fig.
4.10.
Fig. 4.10 Definirea
unei legende
4.1.7 Comanda
hold
Conf.dr.ing. OvidiuAurelian Detean
Programare si
limbaje II Curs 4.
Reprezentri grafice
2D i 3D n
MATLAB
15 | P a g e
n situaia n care
se dorete
reprezentarea
grafic a mai
multor funcii n
aceeai fereastr,
dar adugarea
funciilor
suplimentare se
dorete s se fac
n etape distincte
n program, se
poate utiliza
comanda hold.
Prin utilizarea
opiunii
hold on
graficul curent va
fi meninut n
fereastra grafic,
iar graficele
ulterioare vor fi
reprezentate n
acelai sistem de
axe, pn la
ntlnirea
comenzii
hold off
Comanda hold
fr niciun
parametru
comut starea
acesteia, din on n
off i invers.
Fiierul script de
mai jos are, prin
urmare, acelai
efect cu cel
anterior.
Fiierul script
C04S5.m
x = 0:pi/20:pi;
y1 = sin(2*x);
y2 = cos(2*x);
plot(x,y1,'b','LineWidth',
2)
hold on
plot(x,y2,'g-', 'LineWidth',
2)
title('Reprezen
tari grafice
multiple')
xlabel('Valoril
e lui x')
ylabel('sin(2*x
), cos(2*x)')
grid on
legend('sin(2*x
)', 'cos(2*x)')
hold off
4.1.8 Tiprirea
graficului sau
exportarea ntrun fiier grafic.
Comanda print
n vederea
tipririi la
imprimant a
graficului dintr-o
fereastr de tip
figur, se poate
utiliza comanda
print. De o
importan
deosebit o are
exportarea
graficului ntr-un
fiier grafic, de
exemplu JPEG pe
24 bii i
importarea
acestuia ntr-un
document de tip
office. Comanda
>>print -djpeg
fig_sin_cos
introdus n script
sau chiar n
fereastra de
comenzi, produce
exportarea
ferestrei curente
(de exemplu,
reprezentarea
grafic multipl
de la ultimul
exemplu), n
fiierul grafic
fig_sin_cos.jpg.
Salvarea acestui
fiier se face n
directorul curent,
pentru o
consultare
ulterioar.
4.1.9 Divizarea
ferestrei
grafice. Funcia
subplot()
n funcie de
necesitate,
fereastra grafic
poate fi mprit
ntr-un tablou de
m x n ferestre
mai mici, n
fiecare dintre ele
putndu-se
reprezenta grafic
una sau mai
multe funcii.
Ferestrele sunt
numerotate n
ordine, pornind
de la 1, pn la
mxn.
Ex5. S se
reprezinte grafic
funciile sin 3x,
cos 3x, sin 6x,
cos 6x, ntr-un
tablou de 2x2
subplot-uri.
Fiierul script
C04S6.m
x = 0:0.01:1;
subplot(221)
plot(x,sin(3*pi
*x))
xlabel('x')
ylabel('sin
3\pix')
subplot(222)
plot(x,cos(3*pi
*x))
xlabel('x')
ylabel('cos
3\pix')
subplot(223)
plot(x,sin(6*pi
*x))
xlabel('x')
ylabel('sin
6\pix')
subplot(224)
plot(x,cos(6*pi
*x))
xlabel('x')
ylabel('cos
6\pix')
n scriptul de mai
sus, apelul
funciei
subplot(221),
similar
subplot(2,2,1),
produce divizarea
ferestrei ntr-un
tablou 2x2, din
care se selecteaz
prima
subfereastr.
Efectul execuiei
acestui script
poate fi verificat
n fig. 4.11.
Conf.dr.ing. OvidiuAurelian Detean
Programare si
limbaje II Curs 4.
Reprezentri grafice
2D i 3D n
MATLAB
16 | P a g e
Fig. 4.11
Reprezentri
grafice multiple
sub form de
tablou
4.1.10
Mrirea/micor
area
reprezentrii
grafice.
Comanda
zoom
4.1.11
tergerea unei
reprezentri
grafice.
Comanda clf
4.1.12
Deschiderea
unei ferestre
grafice noi.
Comanda
figure
4.1.13
Controlul
axelor. Funcia
axis()
4.2
Reprezentri
grafice 3D.
Reprezentri
de suprafee
O suprafa este
definit
matematic printro funcie f(x, y),
pentru care,
corespunztor
fiecrei perechi
de valori (x, y)
trebuie s se
calculeze cota z:
z = f(x, y).
n vederea
reprezentrii
grafice 3D, se
folosesc
urmtoarele
funcii:
meshgrid()
genereaz
tablouri X i Y
pentru
reprezentri 3D;
mesh() creeaz
suprafee
parametrice de
tip wireframe;
contour()
reprezentare
grafic sub form
de curbe de nivel.
Ex6. S se
reprezinte grafic
suprafaa definit
prin funcia
f(x, y) = (x 3)2
(y 2)2
pentru 2 x 4 i
1 y 3.
Fiierul script
C04S7.m
[X,Y] =
meshgrid(2:.2:4
, 1:.2:3);
Z = (X-3).^2(Y-2).^2;
mesh(X,Y,Z)
title('Functia
Sa (de pus pe
cal)')
xlabel('x')
ylabel('y')
zlabel('z')
Conf.dr.ing. OvidiuAurelian Detean
Programare si
limbaje II Curs 4.
Reprezentri grafice
2D i 3D n
MATLAB
17 | P a g e
Fig. 4.12
Reprezentarea
grafic 3D a
funciei a
Ex7. S se
reprezinte grafic
suprafaa definit
prin funcia
f(x, y) = 2( ) 2 2
xye x y
pentru -2 x 2
i -2 y 2. S se
determine
valorile i poziiile
maximelor i
minimelor
funciei.
Fiierul script
C04S7.m
[X,Y] =
meshgrid(2:.1:2,2:.2:2);
f = X.*Y.*exp(2*(X.^2+Y.^2));
figure (1)
mesh(X,Y,f)
xlabel('x')
ylabel('y')
zlabel('z')
grid on
figure (2)
contour(X,Y,f)
xlabel('x')
ylabel('y')
grid on
hold on
fmax =
max(max(f))
kmax =
find(f==fmax)
Pos = [X(kmax),
Y(kmax)]
plot(X(kmax),Y(
kmax),'*')
text(X(kmax),Y(
kmax),'
Maximum')
Conf.dr.ing. OvidiuAurelian Detean
Programare si
limbaje II Curs 4.
Reprezentri grafice
2D i 3D n
MATLAB
Fig. 4.13
Reprezentarea
grafic 3D a
funciei f(x, y) =
2( ) 2 2 xye x y
Fig. 4.14
Reprezentarea
grafic de tip
contour, cu
evidenierea
extremelor
1|Page
Programare si limbaje II
Anul I, AR+ITT
1 Recapitulare
Curs 4 + Laborator 7 + Laborator 8
1.1 Comenzi
grid
hold
print
1.2 Funcii
real()
imag()
whitebg()
set()
title()
xlabel()
ylabel()
zlabel()
legend()
subplot()
meshgrid()
mesh()
contour()
figure()
text()
1.3 Diverse
Specificatori de stiluri de linie
Specificatori de marker
Specificatori de culoare
LineWidth
MarkerEdgeColor
MarkerFaceColor
MarkerSize
Comenzi TeX Conf.dr.ing. Ovidiu-Aurelian Detean Programare si limbaje II Curs 5. Derivare, integrare, limite, ecuaii n
MATLAB
2|Page
Descriere:
Forma diff(S) difereniaz expresia simbolic S n raport cu variabila sa liber, determinat de funcia
findsym().
Forma diff(S,'v') sau diff(S,sym('v')) difereniaz expresia simbolic S n raport cu variabila
v.
Forma diff(S,n) difereniaz expresia simbolic S de n ori (n mrime ntreag i pozitiv).
Forma diff(S,v,n) sau diff(S,n,v)difereniaz expresia simbolic S de n ori (n mrime
ntreag i pozitiv) n raport cu variabila v.
Ex.1. Fie variabila simbolic x:
>> syms x
i funcia:
>> y = sin(3*x)
y =
sin(3*x)
Comanda
>> diff(y)
3|Page
sau aa:
>> diff(diff(z))
ans =
(-2)*exp(x)*sin(x)
Observaii:
1. Funcia findsym() determin variabilele dintr-o expresie sau matrice simbolic.
Sintax:
findsym(S) findsym(S,n)
Descriere:
findsym(S) returneaz toate variabilele simbolice din expresia sau matricea simbolic S, n ordine
alfabetic, separate prin virgul. Dac S nu conine variabile simbolice, va fi returnat tabloul vid.
findsym(S,n) returneaz cele n variabile cel mai apropiate alfabetic de x.
Exemple:
>> syms a x y z t
>> findsym(sin(pi*t))
ans =
t
>> findsym(x+i*y-j*z)
ans =
x,y,z
>> findsym(a+y,1)
ans =
y
2. n cazul n care, din cauza complexitii expresiilor simbolice, MATLAB nu simplific n mod automat
rezultatul, se poate folosi funcia symbolic/simplify().
Sintax: Conf.dr.ing. Ovidiu-Aurelian Detean Programare si limbaje II Curs 5. Derivare, integrare, limite, ecuaii n MATLAB
4|Page
R = simplify(S)
R = simplify(S, n)
Descriere:
R = simplify(S) simplific fiecare element din matricea simbolic S, folosind regulile de simplificare
MuPAD.
R = simplify(S, n) utilizeaz numrul ntreg i pozitiv n pentru a controla numrul de ncercri de
Descriere:
Y = diff(X) calculeaz diferenele ntre elementele adiacente ale lui X. Dac X este un vector,
diff(X) returneaz un vector mai scurt cu un element, al diferenelor ntre elementele nvecinate:
[X(2)-X(1) X(3)-X(2) ... X(n)-X(n-1)]
Y = diff(X,n) aplic diferenierea recursiv de n ori, rezultnd diferena de ordin n. Astfel,
diff(X,2) este echivalent cu diff(diff(X)).
Y = diff(X,n,dim) calculeaz diferena de ordin n n raport cu dimensiunea specificat de scalarul
pozitiv dim. Dac ordinul n este mai mare sau egal cu lungimea dimensiunii dim, rezultatul va fi tabloul
vid.
Ex.1. Cantitatea diff(y)./diff(x) este o derivat numeric aproximativ.
>> x = [1 2 3 4 5];
>> y = diff(x)
y =
1 1 1 1
>> z = diff(x,2)
z =
0 0 0
5|Page
0.0911 -0.7788
ans(:,:,2,1) =
-0.2810 -0.5348
ans(:,:,1,2) =
0.2684 0.4106
ans(:,:,2,2) =
-0.8073 0.8130
ans(:,:,1,3) =
-0.4718 0.3149
ans(:,:,2,3) =
0.2799 0.4940
ans(:,:,1,4) =
0.1673 -0.3038
ans(:,:,2,4) =
0.8134 0.0849
iar diff(A,3,4) este diferena de ordin 3 n raport cu dimensiunea 4:
>> diff(A,3,4)
ans(:,:,1) =
-2.0585 0.2382 1.0004
ans(:,:,2) =
1.5913 -0.5757 1.0010
Descriere:
int(S) returneaz integrala nedefinit din expresia simbolic S n raport cu variabila sa simbolic,
determinat de funcia findsym().
int(S,v) returneaz integrala nedefinit din expresia simbolic S, n raport cu variabila v.
int(S,a,b) returneaz integrala definit de la a la b (a, b scalari simbolici sau de tip double) din
expresia simbolic S, n raport cu variabila simbolic implicit.
int(S,v,a,b) returneaz integrala definit de la a la b din expresia simbolic S, n raport cu variabila
v.
Ex.1. Fie variabilele simbolice:
>> syms x t z alpha;
Expresia:
>> int(-2*x/(1+x^2)^2)
returneaz:
ans =
1/(x^2 + 1)
Expresia:
>> int(x/(1+z^2),z)
returneaz: Conf.dr.ing. Ovidiu-Aurelian Detean Programare si limbaje II Curs 5. Derivare, integrare, limite, ecuaii n
MATLAB
6|Page
ans =
x*atan(z)
Expresia:
>> int(x*log(1+x),0,1)
returneaz:
ans =
1/4
Descriere:
limit(F,x,a) calculeaz limita din expresia simbolic F, cnd x -> a.
limit(F,a) folosete findsym(F) pentru determinarea variabilei independente.
limit(F) folosete a = 0 pentru calculul limitei.
limit(F,x,a,'right') sau limit(F,x,a,'left') specific direcia unei limite unilaterale.
7|Page
solve(eq1,eq2,...,eqn) g = solve(eq1,eq2,...,eqn,var1,var2,...,varn)
Descriere:
solve(eq) rezolv ecuaia eq = 0, specificat printr-o expresie simbolic sau un ir de caractere care
r = dsolve('eq1','eq2',...,'cond1','cond2',...,'v')
dsolve('eq1,eq2,...', 'cond1,cond2,...', 'v') Conf.dr.ing. Ovidiu-Aurelian Detean Programare
si limbaje II Curs 5. Derivare, integrare, limite, ecuaii n MATLAB
8|Page
Descriere:
eq1, eq2,... reprezint ecuaiile difereniale ordinare.
cond1,cond2,... reprezint condiiile la limit i/sau iniiale.
v reprezint variabila independent.
Variabila independent implicit este t.
Litera D reprezint diferenierea n raport cu variabila independent (d/dx).
D2 este echivalent cu d2/dx2.
D3y reprezint derivata a treia a lui y(x) sau y(t).
Condiiile iniiale sunt specificate prin ecuaii de forma: y(a) = b sau Dy(a) = b, unde y este o
variabil dependent, iar a i b sunt constante. Dac numrul condiiilor iniiale este mai mic dect
numrul variabilelor dependente, soluiile determinate vor conine constante arbitrare.
Exemple:
>> dsolve('Dx = -a*x')
ans =
C2/exp(a*t)
>> dsolve('Df = f + sin(t)')
ans =
C4*exp(t) - sin(t)/2 - cos(t)/2
>> dsolve('(Dy)^2 + y^2 = 1','s')
ans =
-1
1
sin(C11 + s)
sin(C7 - s)
>> dsolve('Dy = a*y', 'y(0) = b')
ans =
b*exp(a*t)
>> dsolve('D2y = -a^2*y', 'y(0) = 1', 'Dy(pi/a) = 0')
ans =
cos(a*t)
>> z = dsolve('Dx = y', 'Dy = -x')
z =
y: [1x1 sym]
x: [1x1 sym]
>> z.x
ans =
(C20*i)/exp(i*t) - C19*i*exp(i*t)
>> z.y
ans =
C19*exp(i*t) + C20/exp(i*t)
1|Page
Programare si limbaje II
Anul I, AR+ITT
1 Recapitulare
Curs 5 + Laborator 9 + Laborator 10
1.1 Comenzi
1.2 Funcii
diff()
symbolic/diff()
findsym()
simplify()
symbolic/int()
limit()
solve()
dsolve()
1.3 Diverse Conf.dr.ing. Ovidiu-Aurelian Detean Programare si limbaje II Curs 6. Interfee grafice utilizator n MATLAB
2|Page
3|Page
4|Page
guide('fullpath') guide(HandleList)
Descriere:
guide pornete mediul de creare sau editare interactiv a GUI-urilor. La pornire se poate specifica
deschiderea unui GUI existent sau crearea unuia nou, pornind de la zero sau pe baza unui model
(template) existent.
guide('filename.fig') deschide fiierul .fig cu numele specificat, dac acesta se afl n directorul
curent.
guide('fullpath') deschide fiierul cu numele specificat, chiar dac acesta nu se afl n directorul
curent.
guide(HandleList) deschide coninutul fiecrui fiier din HandleList, n copii separate ale
mediului de proiectare GUIDE.
Descrierea uneltelor GUIDE
Fig. 6.3 Componentele mediului de proiectare GUIDE
Ex.1. Crearea unui GUI folosind GUIDE, n vederea reprezentrii grafice de suprafee.
Fig. 6.4 Componentele utilizate n aplicaia din Ex.1 Conf.dr.ing. Ovidiu-Aurelian Detean Programare si limbaje II
Curs 6. Interfee grafice utilizator n MATLAB
5|Page
Pornirea GUIDE:
1.
>>guide
6|Page
7|Page
8|Page
9|Page
10 | P a g e
11 | P a g e
Fig. 6.18 Aspectul ferestrei GUI dup introducerea codului Conf.dr.ing. Ovidiu-Aurelian Detean Programare si
limbaje II Curs 6. Interfee grafice utilizator n MATLAB
12 | P a g e
dup linia
% handles structure with handles and user data (see GUIDATA)
se introduce codul:
% Determine the selected data set.
str = get(hObject, 'String');
val = get(hObject,'Value');
% Set current data to the selected data set.
switch str{val};
case 'Peaks' % User selects peaks.
handles.current_data = handles.peaks;
case 'Membrane' % User selects membrane.
handles.current_data = handles.membrane;
case 'Sinc' % User selects sinc.
handles.current_data = handles.sinc;
end
% Save the handles structure.
guidata(hObject,handles)
se introduce codul:
% Display surf plot of the currently selected data.
surf(handles.current_data); Conf.dr.ing. Ovidiu-Aurelian Detean Programare si limbaje II Curs 6. Interfee
grafice utilizator n MATLAB
13 | P a g e
n funcia pushbutton2_Callback()
se introduce codul:
% Display mesh plot of the currently selected data.
mesh(handles.current_data);
n funcia pushbutton3_Callback()
se introduce codul:
% Display contour plot of the currently selected data.
contour(handles.current_data);
14 | P a g e
15 | P a g e
16 | P a g e
Execuia fiecrui callback este declanat de aciunea utilizatorului, cum ar fi apsarea unui buton,
selectarea unei opiuni dintr-un meniu, introducerea unei valori ntr-o caset de editare, apsarea unui
buton de mouse sau trecerea cursorului peste un control. Prin funciile definite, GUI-ul rspunde la
aceste aa-numite evenimente.
Programare condus de evenimente
Execuie asincron a callback-ului declanat de evenimente externe software-ului.
Callback-urile pot fi programate n dou moduri:
- ca i funcii MATLAB, scrise n fiiere M (mai puternice i mai flexibile, din cauza accesului la
argumente);
- ca iruri de caractere coninnd expresii sau comenzi.