Sunteți pe pagina 1din 12

Tema 3

INTRODUCERE ÎN MATLAB
MATLAB (Matrix Laboratory) este un limbaj de programare inițiat de
matematicianul Cleve Moler, la Universitatea din New Mexico, SUA la sfârșitul anilor
’70. În anul 1984, Cleve Moler, împreună cu Jack Little, au rescris limbajul de programare
MATLAB în C și au înființat compania MathWorks, pentru a produce și distribui limbajul
de programare MATLAB.
MATLAB este un limbajul de programare orientat pe efectuarea de calcule
numerice și simbolice specifice diferitelor domenii ale științelor inginerești, și permite
modelarea și simularea sistemelor dinamice de tip general, mai ales prin intermediul
Simulink, ce apare din 1990.
Prima versiune comercială a limbajului de programare MATLAB (MATLAB 1.0)
a apărut în anul 1984, imediat după înființarea companiei MathWorks. În momentul de
față s-a ajuns la MATLAB R2023B (MATLAB 9.14).
O principală caracteristică a MATLAB este aceea că elemente fundamentale de
programare sunt funcții: funcții matematice, funcții pentru reprezentarea grafică 2D și
3D, proceduri pentru generarea funcțiilor definite de utilizator, definirea și manipularea
polinoamelor, funcții pentru controlul datelor și fișierelor, funcții pentru integrarea și
derivarea numerică, funcții pentru rezolvarea numerică a ecuațiilor și sistemelor de ecuații
algebrice și transcendente, funcții pentru rezolvarea numerică a ecuațiilor și sistemelor de
ecuații diferențiale ordinare. În plus, Matlab permite:
- efectuarea de calcule simbolice (Symbolic Math Toolbox): generarea și
manipularea variabilelor, expresiilor și funcțiilor simbolice, reprezentarea grafică a
funcțiilor simbolice, derivarea și integrarea simbolică, calculul simbolic al
limitelor, rezolvarea simbolică a ecuațiilor;
- rezolvarea ecuațiilor diferențiale cu derivate parțiale în domeniul bidimensional
(Partial Differential Equation Toolbox), folosind o interfață grafică specializată și
module de calcul specializate pentru: mecanică, electrostatică, magnetostatică,
transfer de căldură, difuzie;
- analiza statistică (Statistics Toolbox) și numerică (Curve Fitting Toolbox) a datelor
experimentale. Metode de aproximare a funcțiilor prin interpolare și regresie
folosind polinoame, funcții putere, exponențiale, trigonometrice, Gauss, Weibull,
Fourier);
- analiza, proiectarea și reglarea sistemelor dinamice folosind proceduri numerice
specializate (Control Systems Toolbox), pe baza modelelor cu funcții de transfer,
modele în spațiul stărilor, modele în frecvență;
- modelarea și simularea sistemelor prin scheme bloc (Simulink) cu biblioteci de
blocuri pentru simularea sistemelor dinamice continue și discrete; simularea
neliniarităților; elemente pentru vizualizarea semnalelor de ieșire.
Programarea calculatoarelor și limbaje de programare, Nuțu Vasile, suport de curs, 2023 25
Tema 3. Introducere în Matlab
În dezvoltarea Matlab în timp s-au adunat un mare număr de biblioteci, ale căror
elemente pot fi folosite pentru calcule științifice în diverse domenii: SimHydraulics,
SimMechanics, Bioinformatics Toolbox, SimBiology, SimDriveline, SimElectronics,
SimPowerSystems, System Identification Toolbox, Optimization Toolbox, Signal
Processing Toolbox, Image Processing Toolbox, Computer Vision System Toolbox, Data
Acquisition Toolbox.
Din Matlab, cu ajutorul interfeței GUIDE (Graphic User Interface Development
Environment), pot fi generate interfețe grafice de tip GUI (Graphic User Interface)
Este posibil transferul bidirecțional al datelor între MATLAB și Microsoft Excel,
sau între MATLAB și baze de date relaționale: Oracle, MySQL, Sybase, Microsoft SQL
Server, Database Toolbox.
În Matlab se pot crea și aplicații executabile, (fișiere de tip .exe dau .dll).

3.1. Interfața grafică


După lansarea în lucru a Matlab, indiferent de aspectul ferestrei care se
deschide, se accesați butonul Layout.
În fereastra nou deschisă se accesează butonul Command History, apoi se
marchează opțiunea Docked, din secțiunea
SHOW. După aceasta, se revine automat la
fereastra inițială. Se accesează din nou butonul
Layout și se selectează opțiunea Default.

Ca urmare a acestor comenzi, se ajunge la fereastra grafică cu aspectul figura


următoare, în care se disting cinci zone distincte.

Elemente de programare în Matlab, Nuțu Vasile, suport de curs, 2023 26


Tema 3. Introducere în Matlab

Bara de comenzi

con?inutului directorului curent Directorul curent Workspace


Fereastra de afisare a

Fereastra de
Current Folder

vizualizare a
variabilelor din
sesiunea de lucru
Command Window curentă
Fereastra de lucru în modul linie de comandă

Command History
Fereastra de afisare a
comenzilor

Bara de comenzi, afișează meniurile principale, HOME, PLOTS și APPS.


Pentru meniul HOME sunt afișate elementele din toolbar-ul cu butoane
corespunzătoare comenzilor generale.

Pentru meniul PLOTS sunt afișate elementele din toolbar-ul cu butoane pentru
reprezentări grafice.

Pentru meniul APPS sunt afișate elementele din toolbar-ul cu butoane pentru
accesarea unor aplicații evoluate, specializate pe anumite domenii.

Toolbar-urile corespunzătoare celor trei meniuri principale se pot customiza,


funcție de necesități.
3.2. Directorul curent și tipuri de fișiere de lucru
În fereastra Current Folder sunt afișate fișierele din directorul curent, și
eventualele foldere din acesta. Calea completă a directorului curent este evidențiată în
caseta de mai jos:

Elemente de programare în Matlab, Nuțu Vasile, suport de curs, 2023 27


Tema 3. Introducere în Matlab

Selectarea directorului curent se face prin accesarea butoanelor și , în mod


similar utilitarelor de tip Windows Explorer, după crearea acestui director în locația dorită
(prin folosirea unui utilitar). Este recomandabil ca fiecare student să creeze un director de
lucru în care să salveze fișierele pe care la va realiza. La lansarea Matlab după instalare,
directorul curent poate fi chiar în zona în care sunt plasate diverse componente ale Matlab,
fiind astfel posibilă ștergerea sau modificarea accidentală a unor resurse ale sistemului.
Crearea unui director de lucru nu este suficientă. Pentru ca resursele din directorul
curent să fie accesibile sistemului, acesta va trebui inclus în lista resurselor accesibile, prin
accesarea butonului din bara de comenzi. În fereastra ce se deschide se va
selecta opțiunea Add Folder.

La acțiunea butonului Add Folder se deschide o fereastră de navigare, din care se


poate ajunge la directorul dorit, iar la final se acționează butonul Select Folder.

În fereastra Set Path, în partea dreaptă este prezentată lista directorilor accesibili.
Prin marcarea unui director, acesta poate fi mutat în listă, poate fi adăugat cu sau fără
directorii incluși sau poate fi eliminat din listă. Ordinea în lista a unui director determină
Elemente de programare în Matlab, Nuțu Vasile, suport de curs, 2023 28
Tema 3. Introducere în Matlab
ordinea de căutare a resurselor, la apelul unei funcții. Dacă un fișier cu același nume apare
în doi directori diferiți, în versiuni diferite, atunci va fi folosit fișierul din directorul plasat
mai sus în listă.
În Current Folder sunt afișate fișierele din directorul curent, care pot fi fișiere
Matlab și fișiere de alte tipuri, dintre care unele sunt recunoscute de Matlab.
Fișierele Matlab (native) pot fi de mai multe tipuri, funcție de versiunea instalată,
cele mai folosite fiind următoarele:
- fișiere cu extensia .m (fișiere de tip script sau de tip function care conțin instrucțiuni
și text explicativ);
- Fișiere cu extensia .fig (fișiere de tip figure care conțin informații de tip grafic);
- Fișiere cu extensia .mdl și .slx (fișiere de tip model care conțin scheme bloc de tip
Simulink și scheme funcționale de tip Simscape);
- Fișiere cu extensia .mn (fișiere care conțin comenzi de calcul simbolic MuPAD);
- Fișiere cu extensia .mat (fișiere care conțin date formatate și care pot fi utilizate
pentru salvarea datelor din spațiul de lucru MATLAB, folosind comanda save,
respectiv pentru încărcarea datelor în spațiul de lucru MATLAB, folosind comanda
load).
Fișierele de alte tipuri recunoscute de Matlab sunt fișiere de tip text, fișierele
imagine de tip bmp, jpg, ..., fișiere Excel, și chiar și fișiere word.
În plus față de fișierele în format predefinit (.mat, .mdl, .m, .fig, .asv), prin
instrucțiuni sau rutine specifice se pot accesa fișiere de tip text sau de tip predefinit (în
general pentru fișierele de date). Instrucțiunile și formatele de scriere/citire a datelor din
fișierele predefinite sunt identice cu cele utilizate de limbajul C. Pentru editarea de texte,
se folosește un editor simplu, similar NOTEPAD sau WORDPAD, care
generează/accesează fișiere de tip text.
3.3. Generarea și modificarea fișierelor
În Matlab, fiecare fișier poate fi considerat ca o
resursă, ce poate fi folosită și de alte programe/aplicații.
Gestionarea fișierelor este posibilă prin intermediul
ferestrelor ce se deschid la accesarea butoanelor din
submeniul FILE, din meniul principale HOME.
Accesarea butonului New Script are ca efect deschiderea unei ferestre grafice de
editare a unui fișier script de tip .m. Simultan, în bara de comenzi, în partea superioară
mai apar trei meniuri principale, meniul EDIT fiind activ.

Elemente de programare în Matlab, Nuțu Vasile, suport de curs, 2023 29


Tema 3. Introducere în Matlab
În fereastra de editare se editează fișierul,
după care acesta poate fi salvat sau chiar rulat,
pentru testare. Salvarea fișierului se face în directorul curent.
Toolbar-ul meniului EDIT include și butoane pentru navigare, pentru
editare și pentru rularea programului în diverse variante. De exemplu,
butonul Open permite deschiderea în editare a unui alt fișier, în fereastra de
editare deja deschisă.
Accesarea butonului New Live Script are ca efect deschiderea unei
ferestre grafice de editare a unui fișier live script de tip .mlx. Simultan, în
bara de comenzi, în partea superioară mai apar trei meniuri principale,
meniul LIVE EDITOR fiind activ.
Accesarea butonului New, ,are ca efect deschiderea unei
ferestre în care există mai multe opțiuni de creare a unor resurse noi,
ca fișiere sau aplicații.
3.4. Generarea și gestionarea variabilelor
Submeniul VARIABLE permite gestionarea
variabilelor. Toate variabilele active dintr-o sesiune de
lucru sunt afișate în fereastra Workspace. Pentru
fiecare variabilă sunt afișate informații privind tipul,
memoria ocupată.
Pentru exemplificare, prin secvența următoare, în Command Window au fost create
două Variabile, a și b:

Ca rezultat al acestor comenzi, fereastra Workspace va ajunge la forma următoare:

Prin acțiunea butonului Import Data, se deschide o fereastră în care sunt afișate
toate fișierele din directorul curent ce pot conține date posibil de încărcat. Funcție de tipul
fișierului, datele care vor fi încărcate, prin structură, dimensiune și format diferă.
Selectarea unui fișier permite încărcarea datelor stocate în acesta.
Elemente de programare în Matlab, Nuțu Vasile, suport de curs, 2023 30
Tema 3. Introducere în Matlab

Pictogramele din fereastra Import Data sunt sugestive. După selectarea fișierului și
acțiunea butonului Open, apare o nouă fereastră de dialog. Pentru exemplificare, am ales
fișierul matlab.mat, în care au fost salvate variabilele dintr-o sesiune de lucru anterioară.

În fereastră sunt afișate toate variabilele salvate în fișier, inclusiv anumite elemente
descriptive. Dacă se dorește încărcarea numai a unora dintre variabile, se poate dezactiva
marcajul Import corespunzător. După acționarea butonului Finish, fereastra se închide, iar
variabilele selectate vor apare în fereastra Workspace.

Celelalte butoane din submeniul VARIABLE permit gestionarea variabilelor,


numele butoanelor fiind suficient de sugestive.
Elemente de programare în Matlab, Nuțu Vasile, suport de curs, 2023 31
Tema 3. Introducere în Matlab
3.5. Meniul EDIT
Meniul EDIT, se activează la apăsarea unui buton din submeniul FILE, din meniul
HOME, sau la deschiderea în editare a unui fișier de tip .m din fereastra Current Folder,
prin dublu click.
Crearea unui fișier de tip .m funcție:

este activat meniul EDIT și se deschide fereastra de editare Editor, în care sunt deja incluse
o serie de elemente ce țin de formatul de realizare a uni asemenea fișier.
Deschiderea în editare a unui fișiere existent, cu dublu-click pe fișierul afișat în
Current Folder:

Editarea fișierului se poate face în funcție de ceea ce dorim să


realizeze programul. În acest scop, se pot folosi eventual și butoanele din
submeniul EDIT, pentru secțiuni și comentarii. În final, se face salvarea,
cu un nume nou, sau cu numele deja existent. Închiderea ferestrei de
editare duce la revenirea în meniul HOME.

Elemente de programare în Matlab, Nuțu Vasile, suport de curs, 2023 32


Tema 3. Introducere în Matlab
3.6. Lucrul în linie de comandă
Lucrul în Matlab este se face în linie de comandă, prin introducerea unor comenzi,
în fereastra Command Window. Fiecare șir de caractere introdus, care este finalizat prin
apăsarea tastei ENTER poate fi interpretat ca o comandă. Urmare a introducerii comenzii,
sistemul poate efectua anumite operații, sau poate genera un mesaj eroare.

Mesaj eroare, comanda (sort) este corect


scrisă, dar parametrul de intrare, a , nu
este definit
Comanda pentru crearea variabilei de
intrare, a, fără ecou în afișare, va genera
variabila.

Ecoul comenzii, afișarea Comanda pentru generarea variabilei b, prin prelucrarea


variabilei create variabilei a, cu ecou în afișare, pentru că șirul de caractere
nu are ; la final.
Prezența caracterului ; la finalul unei comenzi anulează ecoul în afișare, în caz
că acest caracter lipsește, vom avea ecou în afișare. Această particularitate poate fi
folosită pentru verificarea pas cu pas a programelor.
Există situații în care, după un șir de caractere introdus și apăsarea tastei ENTER,
se așteaptă introducerea unui nou și de caractere. Este cazul instrucțiunilor ciclice, ce
corespund comenzilor prin cuvinte cheie din Matlab, cum ar fi if, for, while. În aceste
cazuri, o comandă completă include mai multe linii. Finalizarea unei astfel de comenzi
(compuse) presupune folosirea cuvântului rezervat end. Când o asemenea comandă este
finalizată corect, la acțiunea tastei ENTER este lansată în execuție.
K =3; Comandă simplă, fără ecou
>> for i=1:4
k=k*3+2 Comandă complexă, ce conține o comandă simplă cu ecou
end

k= cuvinte rezervate ce indică o instrucțiune ciclică, culoare bleu


11
k=
35 Ecoul comenzii compuse
k=
107
k=
323
Comenzile din Matlab, simple sau complexe, sunt de fapt apeluri ale unor funcții,
proprii limbajului sau realizate de utilizator. Din acest motiv, corectitudinea unei
comenzi este analizată în concordanță cu modul în care este definită acea funcție.
Elemente de programare în Matlab, Nuțu Vasile, suport de curs, 2023 33
Tema 3. Introducere în Matlab
Modul în care trebuie editată secvența de apel a unei funcții poate fi vizualizat prin
comanda help function. În continuare este exemplificat ecoul grafic generat de comanda
help sort, sort fiind funcția Matlab prin care se realizează sortarea unui grup de date.
>> help sort
sort Sort in ascending or descending order.
B = sort(A) sorts in ascending order.
The sorted output B has the same type and size as A:
- For vectors, sort(A) sorts the elements of A in ascending order.
- For matrices, sort(A) sorts each column of A in ascending order.
- For N-D arrays, sort(A) sorts along the first non-singleton dimension.
B = sort(A,DIM) also specifies a dimension DIM to sort along.
B = sort(A,DIRECTION) and B = sort(A,DIM,DIRECTION) also specifies the sort direction. DIRECTION must be:
'ascend' - (default) Sorts in ascending order.
'descend' - Sorts in descending order.
B = sort(A,...,'MissingPlacement',M) also specifies where to place the missing elements
(NaN/NaT/<undefined>/<missing>) of A. M must be:
'auto' - (default) Places missing elements last for ascending sort and first for descending sort.
'first' - Places missing elements first.
'last' - Places missing elements last.
B = sort(A,...,'ComparisonMethod',C) specifies how to sort complex numbers. The comparison method C must
be:
'auto' - (default) Sorts real numbers according to 'real', and complex numbers according to 'abs'.
'real' - Sorts according to REAL(A). Elements with equal real parts are then sorted by IMAG(A).
'abs' - Sorts according to ABS(A). Elements with equal magnitudes are then sorted by ANGLE(A).
[B,I] = sort(A,...) also returns a sort index I which specifies how the elements of A were rearranged to obtain the
sorted output B:
- If A is a vector, then B = A(I).
- If A is an m-by-n matrix and DIM = 1, then
for j = 1:n, B(:,j) = A(I(:,j),j); end
The sort ordering is stable. Namely, when more than one element has the same value, the order of the equal
elements is preserved in the sorted output B and the indices I relating to equal elements are ascending.
Examples:
% Sort a vector in ascending order
sort([0 3 1 0 2 0 1 6])
% Sort each column or row of a matrix
A = [3 7 5; 0 4 2]
B1 = sort(A,1) % sort each column
B2 = sort(A,2) % sort each row
% Sort complex numbers according to their real part
A = [1+1j ; 1-1j ; -2-2j ; 0 ; -2+2j]
B = sort(A,'ComparisonMethod','real')
See also issorted, sortrows, min, max, mink, maxk.
Reference page for sort
Other functions named sort

În zona finală sunt afișate link-uri spre funcții din aceeași categorie, spre pagina de
referință a acestei funcții sau spre alte funcții cu același nume (dacă acestea există).
Pentru marea majoritate a funcțiilor Matlab, modul de lucru este particularizat
de numărul și valorile argumentelor de apel.
Elemente de programare în Matlab, Nuțu Vasile, suport de curs, 2023 34
Tema 3. Introducere în Matlab
3.7. Specificarea preferințelor pentru lucrul în Matlab

Butonul din meniul HOME permite specificarea preferințelor privind


modul de lucru. La accesarea butonului, se deschide fereastra Preferences. Pentru fiecare
din elementele figurate pe coloana din partea stângă (în figură pentru Command Window)
se pot modifica setările implicite, dintre cele disponibile în partea dreaptă a ferestrei.

În imaginea de mai sus se


observă afișarea variabilelor de
face în formatul short (pe un
număr minim de digiți). Se pot
face modificări privind modul de
afișare (se pot afișa variabilele în
format hexa de exemplu).
De interes pot fi de
exemplu opțiunile pentru copierea
figurilor, în alte documente, ca
metafile sau bitmap, după cum se
observă în figura alăturară.
Elemente de programare în Matlab, Nuțu Vasile, suport de curs, 2023 35
Tema 3. Introducere în Matlab
3.8. Resurse documentare pentru Matlab
Butoanele din submeniul RESOURCES din meniul HOME
sunt utile pentru obținerea unor informații asupra modului de lucru
în Matlab.

Butonul deschide pagina cu documentația mediului de


programare, Documentation, în meniul All. În această pagină, se pot selecta pas cu pas
resursele relativ la care se caută înformații. Resursele sunt grupate pe biblioteci, în general
specializate pentru anumite domenii de utilizare.

Butonul deschide o primă casetă de selecție; prin selecția


unei opțiuni se poate ajunge tot la fereastra DOCUMENTATION, dar
se pot obține și alte informații relativ la limbajul de programare.
Comanda DEMO din Command Window duce tot la fereastra
DOCUMENTATON, la secțiunea Examples.
Din fereastra DOCUMENTATION se pot accesa și elemente ale
tutorialului Matlab, util pentru informații suplimentare asupra unor aspecte care nu sunt
acoperite complet de suportul de curs.
De reținut:
- orice funcție sau variabilă creată, al cărui nume este identic cu al unei funcții
Matlab existente face ca această funcție să nu mai poată fi folosită;
- lipsa caracterului ; la finalul unei comenzi generează ecou în Command Window.
Teme:
- verificați ric cu ceezultatele obținute la exercițiile de la tema 2, prin afișarea
valorilor în format hexa;
- intrați în tutorial și încercați să parcurgeți în ordine primele exemple;
- documentați-vă din tutorial asupra rolului ferestrei Command History.

Elemente de programare în Matlab, Nuțu Vasile, suport de curs, 2023 36

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