1. 2. PREZENTARE GENERALĂ MATLAB
MATLAB (MATrix LABoratory) este un pachet de programe de înaltă
performan ă dedicat calculului numeric şi reprezentărilor grafice în domeniul
ştiin ei şi al ingineriei, care integrează: analiza numerică, calculul matriceal,
procesarea semnalului şi reprezentările grafice într-un mediu uşor de învă at şi
folosit. Elementul de bază cu care operează MATLAB este matricea (matrix), cu
care se pot rezolva problemele date, fără a fi necesară cunoaşterea unui limbaj de
programare. Cea mai importantă caracteristică a MATLAB este uşurin a în operare
şi dezvoltarea unor aplica ii specifice domeniului în care lucrează utilizatorul.
Structural, MATLAB este realizat sub forma unui nucleu de bază, cu
interpretor propriu, în jurul căruia sunt construite aplica ii specifice diferitelor
domenii, numite TOOLBOX (colec ii extinse de func ii MATLAB, destinate
rezolvării unor probleme din domenii variate).
2.1. Ferestre de lucru
MATLAB lucrează cu două tipuri de ferestre: o fereastră de comenzi
(Command Window) şi o fereastră pentru reprezentări grafice.
Fereastra de comenzi
În momentul declanşării programului, apare fereastra de comenzi. Meniul
principal din bara superioară a acesteia este accesibil prin selec ia directă cu
mouse-ul a comenzii dorite sau prin tastarea simultană a tastei Alt şi a literei
subliniate a comenzii dorite.
Fiecare comandă din meniul principal furnizează un meniu specific, în cadrul
acestuia selec ia putându-se face, fie cu mouse-ul, fie prin tastarea literei marcate
special, în fiecare subcomandă a respectivului meniu.
O parte din comenzile prezente în meniul principal sunt aliniate sub formă de
butoane pe bara imediat inferioară (Bara cu butoane).
Comenzile esen iale şi func iile matematice se introduc în dreptul cursorului
MATLAB; tot de aici se pot declanşa ini ierea toolbox-urilor (colec ii extinse de
func ii MATLAB, destinate rezolvării unor probleme specifice anumitor domenii).
În momentul în care capacitatea ecranului este depăşită din punct de vedere
orizontal sau vertical, este posibilă deplasarea cu ajutorul butoanelor de derulare
orizontală şi verticală.
În figura următoare sunt prezentate componentele principale ale ferestrei de
comenzi descrise anterior:
2. Prezentare generală Matlab 27
Gestionarea fişierelor
Selectând comanda File, din meniul principal, se ob ine submeniul de
gestionare a fişierelor, cu următoarea listă de comenzi:
New – provoacă descrierea unui alt sub-submeniu cu op iunile: M-File
(deschide o ferestră de editare a unui fişier), Figure (deschide o fereastră
grafică nouă), Model (deschide fereastra corespunzătoare modelării în
Simulink);
Open – deschide o fereastră de dialog, pentru a selecta un fişier, care va
deveni un fişier de lucru;
Open selection – analizează fişierele pentru selectare şi deschide pe cel
selectat;
Run Script – rulează comenzile componente ale unui scenariu;
Load Workspace – încarcă fişierul specificat, în care au fost salvate anterior
datele din spa iul de lucru;
Save Workspace As – deschide o fereastră de dialog, pentru a salva datele
din spa iul de lucru într-un fişier, al cărui număr trebuie precizat;
Show Workspace – prezintă con inutul spa iului de lucru;
Show Graphics Property Editor – editorul de proprietă i grafice ;
Show GUI Layout Tool – modificarea interfe ei;
Set Path – se stabilesc căile către directoarele în care se găsesc fişiere sau
3. 28 SISTEME DE PROGRAMARE PENTRU MODELARE ŞI SIMULARE
aplica ii MATLAB;
Preferences – stabilirea proprietă ilor ferestrei de comenzi;
Print Setup – configurarea caracteristicilor imprimantei şi paginii;
Print – permite tipărirea documentului;
Exit MATLAB – părăsirea aplica iei.
Func ia Edit
Aproape toate comenzilor prezente în submeniul Edit sunt comune cu cele
din meniurile similare ale majorită ii editoarelor de texte sub Windows: Undo,
Cut, Copy, Paste, Clear, Select All.
Ştergerea sesiunii de lucru se realizează cu comanda Clear Session.
Selectarea ferestrelor
Trecerea dintr-o fereastră grafică sau de comenzi, într-o altă fereastră, se
realizează prin selectarea comenzii Windows din meniul principal, urmată de
selectarea uneia dintre ferestrele grafice deschise sau acelei de comenzi.
Editarea programelor
La editarea oricărui program, utilizatorul poate apela help-ul şi astfel să
revadă parametrii de intrare şi ieşire ai func iei respective.
În plus, sunt furnizate informa ii referitoare la func ionarea MATLAB,
demonstra ii şi exemple.
Fereastra de reprezentări grafice în Matlab
Fereastra grafică este o formă elevată de reprezentare a graficelor; pot exista
mai multe ferestre grafice deschise în acelaşi timp, dar o singură fereastră de
comenzi.
În fereastra grafică pot fi reprezentate func ii 2D sau 3D, imagini color,
anima ie etc.
Gestionarea ferestrelor grafice
Selectarea comenzii File-New-Figure determină trecerea într-o fereastră
grafică. Dacă se selectează comanda Window (din meniul principal), urmată de
op iunea Figure, se trece în fereastra grafică ce con ine o reprezentare anterioară.
Editarea graficelor
Selectând comanda Edit din meniul principal al ferestrei grafice, apare un
submneniu, asemănător cu cel al ferestrei de comandă.
4. Prezentare generală Matlab 29
2.2. Func ii de interes general
Func ii pentru intrarea şi ieşirea din Matlab
Func iile pentru lansarea unei sesiuni de lucru în MATLAB, părăsirea
acesteia, precum şi asigurarea unor informa ii necesare unei func ionări corecte
sunt:
startup – fişier M, executat la activarea MATLAB;
matlabrc – fişierul principal pentru lansarea MATLAB (con ine toate căile
de acces la fişierele de lucru, precum şi setările parametrilor de lucru);
exit, quit – ieşire din MATLAB.
Func ii pentru control general
Pentru controlul general al mediului de programare MATLAB se utilizează
func iile:
help – furnizează informa ii despre func ionarea MATLAB;
what – listează fişierele *.M, *.MAT şi *.MEX din directorul curent;
type – listează fişierul M men ionat;
lookfor – întoarce numele fişierelor care au în prima linie a Help (linia H1)
cuvintele precizate ca argument;
which – întoarce calea spre un fişier sau o func ie MATLAB;
path – întoarce căile utilizate de MATLAB pentru a găsi fişierele apelate;
who – listează variabile curente din memorie;
whos – listează variabilele curente, dimensiunile lor, precum şi tipul acestora
(reale sau complexe).
Func ii pentru controlul directoarelor şi fişierelor
Principalele func ii Matlab cu ajutorul cărora se controlează directoarele şi
fişierele sunt:
cd – schimbă directorul curent;
dir – listează con inutul directorului curent;
delete – şterge fişierul precizat de pe disc;
! – execută comenzi DOS (precedate de !), fără părăsirea MATLAB;
diary – salvează sesiunea de lucru (fără partea grafică) într-un fişier text
(ASCII).
Func ii de control ale mărimilor de timp
Controlul mărimilor de timp specifice se realizează cu func iile:
clock – citeşte timpul din BIOS-ul computerului;
cputime – determină timpul de calcul al “CPU”;
date – citeşte data din BIOS-ul computerului;
5. 30 SISTEME DE PROGRAMARE PENTRU MODELARE ŞI SIMULARE
etime –cronometrează intervalul de timp între două evenimente;
tic, toc – porneşte, respectiv opreşte un cronometru.
Func ii asociate ferestrei de comenzi
Fereastra de comenzi se poate controla prin următoarele func ii:
clc – şterge fereastra de comenzi;
home – mută cursorul în pozi ia ini ială (prima linie-prima comandă);
format op iune – setează formatul de afişare a datelor, în func ie de op iunea
specificată (short – 5 cifre, long – 15 cifre, short e – 5 cifre + exp, long e –
15 cifre + exp, hex – hexazecimal, plus – plus blanc minus, blank – cu 2
zecimale, rat – în numere ra ionale);
echo – permite afişarea liniilor de program, în timpul executării acestora;
more – func ie pentru controlul numărului de linie afişat de monitor.
Func ii de control ale variabilelor din memorie
În timpul lucrului, o serie de mărimi sunt re inute în spa iul de lucru sau în
memoria calculatorului. Acestea pot fi controlate cu următoarele func ii:
disp (X)– afişează o matrice sau un text, fără a tipări numele acesteea, unde X
este un şir text sau o matrice;
Exemplificare: Următoarea secven ă de MATLAB duce la afişarea unei
matrice cu etichete de coloane:
Nr. Var1 Var2
disp (‘Nr. Var1 Var2) 1 5 2
for i= 1:4 ⇒ 2 20 4
y=[i,5*i^2, 2^i]; 3 45 8
end. 4 80 10
clear – şterge toate variabile din spa iul de lucru (clear X Y Z şterge doar
variabilele men ionate);
pack – compactează datele din memorie;
size – întoarce dimensiunea unei matrice;
length – returnează lungimea unui vector.
Exemplificare: Pentru matricea X = [1 2 4; 5 7 9], instruc iunile:
b = size(X) b = [2 3] - 1 linie şi 4 coloane
[m,n] = size (X) ⇒ m=2 - 1 linie
d = length (X) n=3 - 4 coloane
d=3 - dimensiunea maximă 4
6. Prezentare generală Matlab 31
Variabile speciale şi constante Matlab
Variabilele speciale şi constantele au o semnifica ie deosebită în MATLAB.
Acestea nu pot fi declarate şi sunt accesibile global, în orice fişier-M. Variabilele
speciale nu sunt introduse în mod obişnuit, fiind accesibile global în orice fişier-M.
Variabilele speciale şi constantele introduse în mod uzual în MATLAB sunt:
ans – variabilă creată automat, reprezentând rezultatul unui calcul pentru care
nu s-a alocat un nume;
eps – variabilă permanentă, în care este memorată eroarea relativă pentru
calculele efectuate în virgulă mobilă (2,2204e-016);
pi – variabilă permanentă, care are alocată valoarea 3,14159265358;
i = − 1 – variabilă folosită pentru introducerea numerelor complexe (z =x + iy);
j= − 1 – alternativă a unită ii imaginare, i;
inf – variabilă folosită pentru reprezentarea lui plus infinit în standardul
IEEE, rezultat al împăr irii 1,0/0,0;
NaN – variabilă folosită pentru reprezentarea lui Not-a-Number (NaN), în
aritmetica IEEE, rezultat al împăr irii nedefinite 0,0/0,0;
nargin – variabilă permanentă, pentru testarea numărului argumentelor de
intrare ce trebuie introduse pentru apelarea unei func ii;
nargout – variabilă permanentă, pentru testarea numărului argumentelor de
ieşire ale unei func ii;
flops – întoarce numărul de opera ii, în virgulă mobilă, efectuate de
calculator;
computer – variabilă folosită pentru ob inerea informa iilor referitoare la
tipul calculatorului şi numărul maxim de elemente pe care le poate gestiona
versiunea de MATLAB;
realmax – reprezintă cea mai mare valoare pozitivă, în virgulă mobilă, care
poate fi folosită în calcule (1,7977e+-308);
realmin – reprezintă cea mai mică valoare pozitivă, în virgulă mobilă, care
poate fi folosită în calcule (2,2251e+-308);
isieee – func ie care returnează 1, dacă computerul lucrează în standard IEEE
şi 0, în caz contrar;
version, ver –func ii cu care se determină versiunea MATLAB sau a
toolbox-urilor.
Importul şi exportul fişierelor de date
Pentru importul şi exportul fişierelor de date sunt următoarele func ii mai
importante:
load – încarcă varibilele dintr-un fişier de pe disc; sintaxa este load
nume_fişier-format_date (ASCII sau BINAR);
save – salvează variabilele de pe disc într-un fişier de date; sintaxa este save
nume_fişier-format_date (ASCII sau BINAR).
7. 32 SISTEME DE PROGRAMARE PENTRU MODELARE ŞI SIMULARE
2.3. Obiecte Matlab
Matrice, vectori şi scalari
MATLAB-ul utilizează numai un singur tip de obiecte, matrice numerice
rectangulare, cu elemente reale sau complexe. Astfel, scalarii sunt asimila i
matricelor 1x1 (1linie x 1coloană), iar vectorii sunt asimila i matricelor 1xn sau
nx1.
Cea mai simplă metodă de definire a matricelor mici, constă în utilizarea unei
liste explicite, respectând următoarele reguli:
- elementele unei linii trebuie separate prin blank-uri sau virgule;
- liniile se separă prin “;”;
- elementele matricei sunt cuprinse între “[]”.
Astfel secven a A=[1 2; 3 4] întoarce rezultatul:
A=
1 2
3 4
Pentru matricele mari, la care datele de intrate nu încap pe o singură linie, se
poate înlocui “;” cu “Enter”, ca în exemplul următor:
A =[ 1 2
3 4]
Un alt mod de definire constă în apelarea unui fişier de tip ASCII, cu extensia
.m, deja creat. Acest fişier trebuie să fie organizat ca o matrice rectangulară
completă:
1 2
3 4
Elementele matricelor pot fi numere reale sau complexe, precum şi orice
expresie MATLAB. De exemplu, din secven a : x=[-1.3 sqrt(3) (1+2+3)*4/5],
rezultă: x =[ -1.3000 1.7321 4.8000].
Elementul unei matrice x, aflat la intersec ia dintre linia i şi coloana j este
identificat cu nota ia x(i,j). Astfel: a = x(2) ⇒ a = 1.7321.
Fie A1 şi A2 cele două matrice utilizate. Cu secven a următoare:
A1 = [1 2; 3 4] A=
A2 = [5 6; 7 8] ⇒ 1 2
A = [A1; A2] 3 4
5 6
8. Prezentare generală Matlab 33
Declara ii şi variabile
Instruc iunile în MATLAB apar sub forma: variabilă = expresie. Expresiile
sunt compuse din operatori sau alte caractere speciale, din func ii şi nume de
variabile. Dacă numele variabilei şi semnul egal sunt omise, programul creează
automat o variabilă cu numele “ans”, ca în exemplul: 3/4 întoarce, ans = 0.7500.
Orice instruc iune este, în mod normal, terminată cu “Enter”. Dacă ultimul
caracter al acesteia este “;” executată, tipărirea nu este executată. Astfel, secven a:
A= [1 2 3; 4 5 6; 7 8 9] ;
introduce matricea A, dar nu o afişează.
Dacă expresia este mai lungă şi nu încape pe o linie, se utilizează semnul
“…”, urmat de “Enter”, precizându-se astfel că instruc iunea continuă pe
următoarea linie. Astfel, instruc iunea:
S=1+2+3+…
4+5+6;
evaluează suma celor şase numere şi o atribuie variabilei S. Spa iile dintre semnele
“=”,“+”, şi “-” şi numere sunt op ionale.
Numele de variabile şi func ii au ca prim caracter o literă, urmată de litere,
cifre sau “_”. MATLAB re ine doar primele 19 caractere din numele variabilei şi
face distinc ie între litere mari şi mici, deoarece func ia caesesen este activată
automat la activarea programului.
Numere şi expresii aritmetice
MATLAB utilizează pentru reprezentarea numerelor nota ia zecimală
americană, cu punct zecimal.
Calculatoarele care utilizează aritmetica în virgulă mobilă IEEE, au precizia
relativă a numerelor “eps”, aproximată cu 16 cifre semnificative. Limitele
numerelor folosite în MATLAB sunt: 10-308 şi 10308.
Operatorii aritmetici utiliza i sunt:
+ adunarea;
- scăderea;
* înmul irea;
/ împăr irea la dreapta;
împăr irea la stânga (1/4 = 41);
^ ridicarea la putere.
Structura programelor Matlab
Fişierele-M con in instruc iuni MATLAB şi au extensia .m şi constau într-o
succesiune de instruc iuni MATLAB, cu posibilitatea apelării altor fişiere-M,
precum şi a apelării recursive.
Un program MATLAB poate fi scris sub forma fişierelor “script” sau
“function”. Aceste tipuri de fişiere (.m) permit crearea unor func ii noi, care le pot
9. 34 SISTEME DE PROGRAMARE PENTRU MODELARE ŞI SIMULARE
completa pe cele deja existente. Prin această facilitate, MATLAB-ul poate fi extins
la aplica ii specifice utilizatorului, care are posibilitatea să scrie noi proceduri.
Fişierele script
Este un fişier extern care con ine o secven ă de comenzi MATLAB, executată
în momentul apelării numelui fişierului. Fişierele script sunt folosite pentru
rezolvarea unor probleme care cer comenzi succesive atât de lungi, încât ar putea
deveni greoaie pentru lucrul în mod interactiv. După execu ia completă a unui
fişier script, variabilele cu care acesta a operat rămân în zona de memorie a
aplica iei.
Fişierele function
Dacă prima linie a fişierului-M con ine cuvântul ”function”, fişierul respectiv
este declarat ca fişier func ie (spre deosebire de script în el se poate lucra cu
argumente). Fişierele func ie sunt utilizate pentru extinderea MATLAB, prin
crearea de noi func ii. La terminarea execu iei unei func ii, în memoria
calculatorului rămân doar variabilele de ieşire ale acesteea.
Forma generală a primei linii a unui fişier func ie este:
function [param_ieşire]=nume_func ie(param_intrare)
unde: - function – declară fişierul ca fişier func ie;
- nume_func ie – numele func iei;
- param_ieşire – parametrii de ieşire trebuie separa i cu virgulă şi cuprinşi
între paranteze drepte;
- param_intrare - parametrii de intrare trebuie separa i cu virgulă şi cuprinşi
între paranteze rotunde.
Exemplificare: Un fişier care calculează media aritmetică, numit medie.m:
function m = medie (x)
n=length (x);
m = sum (x)/n;
y = [‘Media numerelor este: ‘, num2str(m) ];
disp (y).
2.4. Instruc iuni şi func ii de control
Instruc iuni de control logic
Matlab prezintă următoarele instruc iuni de control logic:
if - instruc iunile pentru execu ia condi ionată;
else – instruc iune asociată if;
elseif - instruc iune asociată if;
for – instruc iune pentru crearea ciclurilor cu număr specificat de paşi;
while – instruc iune pentru crearea ciclurilor cu condi ie logică;
10. Prezentare generală Matlab 35
break – instruc iune pentru terminarea for ată a unui ciclu;
return – returnează execu ia la func ia precizată;
error – instruc iune pentru afişarea unui mesaj de eroare;
end – instruc iune pentru închiderea ciclurilor “for”, “while” şi “if”.
Operatori rela ionali şi logici
În cazul unui algoritm este uneori nevoie de o selec ie a grupului de
instruc iuni a căror execu ie este condi ionată de valoarea de adevăr a unei expresii.
Instruc iunile condi ionale utilizează operatori rela ionali şi logici.
Operatorii rela ionali compară două matrice, element cu element, returnând o
matrice de aceeaşi dimensiune cu a matricelor care se compară, cu elementele 1,
când rela ia este ADEVĂRATĂ şi 0 când este FALSĂ.
Operatori rela ionali Semnifica ie
< mai mic
<= mai mic sau egal
> mai mare
>= mai mare sau egal
== identic
-= diferit
Pentru combinarea a două sau mai multe expresii logice se utilizează
operatori logici.
Operatorii logici Simbol MATLAB Prioritatea
NU _ 1
ŞI & 2
SAU | 3
MATAB con ine func ii pentru testarea unor condi ii rela ionale şi logice în
tablouri de date sau matrice.
Acestea sunt des utilizate, asociate cu instruc iunea “if”:
exist- verifică dacă variabilele sau func iile argument sunt definite;
any-testează dacă cel pu in un element al unei matrice verifică o condi ie
logică;
find - returnează indicii elementelor diferite de zero;
isnan - testează dacă elementele unei matrice sunt NaN;
isinf - testează dacă elemntele unei matrice sunt infinite;
finite – testează dacă elementele unei matrice sunt finite.
11. 36 SISTEME DE PROGRAMARE PENTRU MODELARE ŞI SIMULARE
Caractere speciale
Caracterul „:” sau „colon” este larg utilizat pentru:
• a genera valori cu pas liniar constant sau cu pas constant dat;
• a selecta o matrice, rândul sau coloana acesteia;
• producerea unei liste de argumente.
Parantezele rotunde, simbolizate prin „( )”, sunt folosite:
• în calculele aritmetice sau logice, pentru a grupa opera iile şi unde in
locul tuturor tipurilor de paranteze (rotunde, drepte, acolade);
• pentru a indica elementul unui vector sau matrice ;
• pentru a grupa argumentele unei func ii.
Parantezele drepte, simbolizate prin „[ ]”, sunt utilizate pentru:
• formarea vectorilor şi matricelor, prin indicarea elementelor acestora;
• stocarea unei matrice goale;
• schimbarea unui rând sau coloane dintr-o matrice;
• concatenarea vectorilor şi a matricelor.
Caracterul „@” este utilizat pentru a crea o func ie implicită, apelabilă ca şi o
variabilă.
Punctul, cu simbolul „.” este folosit pentru:
• scrierea numerelor zecimale;
• opera ii cu tablouri, pentru a indica că operatorii de înmul ire, de
ridicare la putere, de împăr ire la dreapta, de împăr ire la stânga, sau de
transpunere, lucrează element cu element ;
• în câmpuri de acces, când se lucrează cu structuri.
Atribuirea unei variabile Var a valorii unei expresii se realizează prin
utilizarea semnului egal, „=”.