Sunteți pe pagina 1din 17

Limbaje de programare

inginereti
Tema 9
MATLAB.
Noiuni generale

CE ESTE MATLAB ?
MATLAB (MATtrix LABoratory) este un pachet de programe de nalt
performan, interactiv, destinat calculului matematic, tiinific i ingineresc.
MATLAB integreaz calcul, programare i vizualizare, ntr-un mediu de
lucru prietenos, soluionarea problemelor presupunnd folosirea notaiilor
matematice clasice.
Utilizarea programului MATLAB include:
Matematic i calcul numeric
Programare i dezvoltare de algoritmi
Achiziia de date
Modelare i simulare
Analiz de date, exploatarea rezultatelor i vizualizare
Grafic tiinific i inginereasc
Dezvoltare de aplicaii software, incluznd construcie de interfee
grafice cu utilizatorul (GUI)

CE ESTE MATLAB ?
MATLAB este un produs al companiei americane The Mathworks, Inc.
[http://www.mathworks.com] i lucreaz sub Windows, Unix, LINUX i
Machintosh.
MATLAB include toate facilitile unui limbaj complet de programare,
admind interfee cu limbajul de programare C, C++ i FORTRAN.
MATLAB a cunoscut o puternic evoluie n decursul ultimilor ani,
reprezentnd astzi n mediile universitare o unealt standard de calcul, fiind
asociat diverselor cursuri introductive sau avansate n matematic, tiin i
inginerie.
n industrie, MATLAB este recunoscut ca un mijloc de investigaie
numeric performant, utilizat n sprijinul unei activiti de cercetare,
dezvoltare i analiz de nalt nivel.

CE ESTE MATLAB ?
Versiunea complet a pachetului de programe MATLAB conine o ntreag
familie de module specifice, denumite tool-box-uri, respectiv blockset-uri,
care permit rezolvarea unor aplicaii din diverse domenii cum ar fi: maini,
aparate i acionri electrice, control de sistem, aplicaii DSP, procesarea
materialelor i electro-tehnologii, procesare de semnal, mecanic, industria
aeronautic i de automobile, statistic, finane i multe altele.
Aceste module sunt colecii de funcii MATLAB (M-files), uor de asimilat,
care extind puterea de calcul a pachetului de programe MATLAB n vederea
rezolvrii unor clase particulare de probleme.
Colecia de module MATLAB conine: Simulink, DSP, Control System,
SimPowerSystems, SimMechanics, Data Acquisition, Fuzzy Logic, Image
Processing, Partial Differential Equations, Neural Network, Optimization,
System Identification, Financial, Statistics, Communications, Database,
Virtual Reality etc.

STRUCTURA SISTEMULUI MATLAB


Structura sistemului MATLAB const n cinci pri principale:
Mediul de dezvoltare. Acesta este alctuit dintr-un set de
unelte care faciliteaz folosirea funciilor i fiierelor
MATLAB. Multe dintre acestea reprezint de fapt interfeele
grafice i includ fereastra principal MATLAB sau MATLAB
Desktop, fereastra de comenzi sau Command Window, fereastra
ce memoreaz istoria comenzilor sau Command History, i
browser-ele de Help, Workspace, Files, Search Path etc.
Biblioteca de funcii matematice MATLAB. Aceasta const
ntr-o vast colecie de algoritmi de calcul, pornind de la funcii
elementare precum sum, sinus, cosinus i aritmetic complex,
pan la funcii mai sofisticate precum inversare de matrici,
calcul de valori proprii, funcii Bessel, i transformata Fourier.

STRUCTURA SISTEMULUI MATLAB


Limbajul MATLAB. Limbajul MATLAB este un limbaj matrice/vector de
nalt nivel ce include instruciuni de control al buclelor, funcii, structuri de
date, comenzi de intrare/ieire i instruciuni de programare orientat pe
obiecte. Limbajul MATLAB permite att programarea superficial pentru
crearea rapid a unor mici programe de calcul specifice, ct i "programarea
n detaliu" n vederea dezvoltrii unor programe complexe de nivel superior.
Handle Graphics. Handle Graphics reprezint sistemul de grafic
MATLAB i include att comenzi de nalt nivel pentru vizualizarea 2D i 3D
a datelor, procesare de imagini, animaie i grafic, ct i comenzi de nivel
redus ce permit personalizarea complet a reprezentrilor grafice i
construirea integral a interfeelor grafice (GUI) pentru aplicaiile MATLAB.
MATLAB Application Program Interface (API). Aceasta este o bibliotec
ce permite scrierea programelor C i Fortran ce interacioneaz cu
MATLAB. Biblioteca conine facilitai de apel de subrutine din MATLAB
(dynamic linking), de apelare a MATLAB-ul ca pe o main de calcul, i de
citire i scriere de fiiere MAT-files.

FERESTRELE DE LUCRU MATLAB


Fereastra principal MATLAB (MATLAB Desktop)

FERESTRELE DE LUCRU MATLAB


Ferestrele Desktop-ului. Urmtoarele ferestre sunt supervizate de MATLAB
Desktop, dei nu toate apar implicit dup lansare:
Fereastra de comenzi (Command Window), permite lansarea
comenzilor MATLAB;
Fereastra Command History, permite memorarea, vizualizarea, editarea
i relansarea funciilor lansate anterior n Command Window.
Fereastra Launch Pad, permite lansarea uneltelor i accesarea
documentaiei MATLAB
Fereastra Current Directory Browser, permite controlul asupra
fiierelor MATLAB i a celor asociate
Fereastra Help Browser, permite vizualizarea i cutarea documentaiei
MATLAB
Fereastra Workspace Browser permite vizualizarea i schimbarea
coninutului spaiului de lucru
Fereastra Array Editor permite editarea i vizualizarea coninutului
variabilelor ntr-un format tabelar
Fereastra Editor/Debugger permite crearea, editarea i depanarea
fiierelor M-files ce conin funcii MATLAB.

TIPURI DE DATE
Numere. MATLAB folosete pentru numere notaia zecimala convenional,
cu punct zecimal opional si semne plus sau minus. Notaia stiintific folosete
litera e pentru a specifica 10 la puterea corespunztoare. Numerele imaginare
folosesc fie i fie j ca sufix. Iata cateva exemple de numere:
3
-99
0.0001
9.6397238
1.60210e-20
6.02252e23
1i
-3.14159j
3e5i
Toate numerele sunt stocate intern folosind formatul long standardizat, avnd
o precizie de circa 16 cifre semnificative i variind intre aproximativ 10-308 i
10+308.
Pentru a economisi memorie, numerele pot fi folosite i n forma ntreg sau
zecimal cu simpl precizie.
n afara datelor de tip numeric, MATLAB lucreaz i cu date de tip logic sau
de tip caracter.

CARACTERE SPECIALE
:
Se foloseste la generarea diviziunilor
()
Folosite pentru corpul unei functii
[]
Pentru desemnarea unei matrici/vector
@
Simbol pentru anuntarea unei functii de tip
FUNCTION_HANDLE
.
Indicator de operatie aritmetica element cu element

Continuarea unei comenzi Matlab pe linia de comanda urmatoare


,
Separator intre instructiuni pe aceiasi linie de comanda (cu ecou
pe ecran)
;
Separator intre instructiuni pe aceiasi linie de comanda ( fara ecou
pe ecran)
%
Se foloseste pentru a anunta comentarii in program
!
Parasirea mediului Matlab pentru o sesiune de lucru externa
=
Asignare

Transpusa unei matrici


[,]
Separator intre elementele aceleiasi linii intr-o matrice/vector
[;]
Separator intre liniile unei matrici

VARIABILE
MATLAB nu necesit nici un tip de instruciuni de declarare sau
dimensionare a variabilelor. Cnd MATLAB intlnete un nou nume
de variabil, acesta creeaz automat variabila i aloc memoria
necesar. Dac variabila deja exist, MATLAB schimb coninutul
acesteia i dac este necesar aloca o alt cantitate de memorie.
Numele de variabile ncep obligatoriu cu o liter, urmat de orice
numr de litere, cifre, etc. MATLAB folosete doar primele 63 de
caractere ale unui nume de variabil.
MATLAB face deosebirea ntre litere mari i mici. A si a nu reprezint
aceeai variabil.
ATENIE ! Dac unei variabile i se d numele unei funcii, funcia nu
mai poate fi folosit pn cnd variabila nu este tears.
Exist i un numr de cuvinte rezervate, care nu pot fi folosite ca nume
de variabile ('break, 'continue, 'else, 'end, 'for, 'function, 'if,
'return, 'switch, 'while, etc)

VARIABILE
Datorit faptului c ntr-o sesiune de lucru numrul de variabile
folosite poate fi foarte mare, MATLAB dispune de o serie de comenzi
i funcii care s uureze munca programatorului. Acestea sunt:
who - pentru a lista variabilele din workspace-ul curent;
whos - pentru a lista variabilele si informaii despre dimensiunile si
clasa lor.
exist nume - pentru a vedea daca variabila specificata se afla in
workspace.

isvarname nume - verific dac numele variabilei propuse este


valid, returnnd valorile 0 sau 1.
which -all nume - verific dac numele variabilei propuse este
folosit de o funcie.
clear nume terge din memorie numele variabilei. Folosit
fr un nume, comanda terge din memorie toate variabilele.

VALORI SPECIALE

pi

3.14159265...

sqrt(-1)

sqrt(-1)

eps

Precizia relativa in virgula mobila 2.2204e-016

realmin

Cel mai mic numr in virgula mobila 2.2251e-308

realmax

Cel mai mare numr in virgula mobila 1.7977e+308

inf

Infinit

NaN

Not-a number

OPERATORI
n MATLAB operatorii pot fi: aritmetici, logici sau relaionali.
Operatorii matematici
+

Adunare

Scdere

.*

nmulire

./

mprire la dreapta

.\

mprire la stnga

Plus unar

Minus unar

.^

Putere

.'

Transpus

'

Transpus complex conjugat

nmulire de matrice

mprire la dreapta a matricelor

mprire la stnga a matricelor

Ridicarea la putere a matricelor

FUNCII
MATLAB pune la dispoziie un mare numr de funcii
matematice standard, incluznd abs, sqrt, exp, i sin. Extrgnd
radical sau aplicnd logaritm pe un numr negativ nu este eroare
ci rezultatul este un numr complex calculat automat. MATLAB
dispune de trei categorii de funcii: funcii elementare, funcii
avansate i funcii speciale pentru matrice. Multe dintre aceste
funcii accepta argumente complexe.
O lista a funciilor elementare se poate obine tastnd help
elfun.
Pentru a obine o lista a funciilor avansate de matematica si de
manipulare a matricelor se tasteaz help specfun, help elmat.

MANIPULAREA MATRICELOR
Se poate defini o matrice in MATLAB pe mai multe cai:
Se introduce o lista explicita de elemente.
Se ncarc matricea din fiiere de date externe.
Se genereaz matricea folosind funcii incluse.
Se creaz matricea folosind propriile funcii.
Pentru introducerea unei matrice ca o lista de elemente trebuiesc respectate
cteva convenii de baza:
Se separ elementele unui rnd cu spatii blanc sau virgule.
Se folosete un semn punct si virgula, ;, pentru a indica sfarsitul fiecrui
rnd.
Se include ntreaga lista intre paranteze ptrate, [ ].
Exemplu
A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

A=
16 3
5
10
9
6
4
15

2
11
7
14

13
8
12
1

MATLAB dispune de mai multe funcii de generare a matricilor de baza,


cum ar fi:
zeros

Matrice doar cu elemente nule

ones

Matrice doar cu elemente unitate

rand

Matrice cu elemente aleatoare uniform distribuite

randn

Matrice cu elemente aleatoare normal distribuite

eye

Matrice cu elemente nule cu exceptia diagonalei


principale plina cu elemente unitate

diag

Matrice diagonala

linspace

Vectori cu elemente avand valori distribuite liniar

logspace

Vectori cu elemente avand valori distribuite logaritmic

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