Documente Academic
Documente Profesional
Documente Cultură
Introducere În Matlab
Introducere În Matlab
Teoria Sistemelor
INTRODUCERE N MATLAB
OBIECTIVE
1.1. Introducere
Matlab este un pachet de programe de nalt performan, ce integreaz
calculul numeric i reprezentrile grafice n domeniile tiinei i ingineriei. Matlab
ofer, pe baza unor lucrri matematice, o analiz matriceal, sinteza i identificarea
sistemelor i programe grafice inginereti att 2D ct i 3D. Matlab-ul integreaz
toate acestea ntr-un mediu uor de nvat i folosit, n care enunurile problemelor i
rezolvrile acestora sunt exprimate n modul cel mai natural posibil, aa cum sunt
scrise matematic, fr a fi necesar programarea tradiional.
O caracteristic important a acestui limbaj de programare este uurina cu
care acesta poate fi extins. Astfel, orice utilizator poate aduga propriile programe
scrise n Matlab la fiierele originale, dezvoltnd aplicaii specifice domeniului n care
lucreaz. Structural, Matlab-ul, este realizat sub forma unui nucleu de baz, cu
interpretor propriu, n jurul cruia sunt construite toolbox-urile. Toolbox-urile sunt
colecii extinse de funcii Matlab care dezvolt mediul de programare de la o versiune
la alta, pentru a rezolva probleme specifice anumitor domenii.
Firma The MathWorks Inc. (care a realizat acest limbaj) a pus n circulaie o
serie de toolbox-uri cum ar fi: Signal Processing, Image Processing, Symbolic Math,
Neural Network, Control System Design, Robust Control, System Identification,
Optimisation, Spline, Statistics, Wavelet, Simulink, Analysis and Synthesis, Finance,
Fuzzy, etc.
ndrumar de laborator
Teoria Sistemelor
MATLAB 7.0.lnk
Din afara mediului Windows (de exemplu DOS) programul poate fi lansat n
execuie direct, cu o comand de forma:
win c:\MATLAB\BIN\matlab
dac fiierul matlab.exe se gsete n calea c:\MATLAB\BIN.
ndrumar de laborator
Teoria Sistemelor
New este folosit pentru deschiderea unui fiier nou de tip M (M - file), a
unei noi ferestre grafice (Figure), a unui model Simulink nou (Model) sau a
unei interfee grafice de tip Graphical User Interface (GUI);
ndrumar de laborator
Teoria Sistemelor
elementele unei linii trebuie separate prin spaiu liber sau virgul;
liniile se separ prin semnul punct-virgul ;;
elementele unei matrici sunt cuprinse ntre paranteze drepte [ ].
Expresiile sunt compuse din operatori sau alte caractere speciale, din funcii i
nume de variabile. Evaluarea expresiei produce o matrice care este afiat pe ecran
i atribuit unei variabile. Dac numele variabilei i semnul egal (variabil =) sunt
omise, Matlab-ul creaz automat o variabil cu numele ans.
Orice instruciune este n mod normal terminat cu Enter. Dac ultimul
caracter al unei instruciuni este punct-virgul ;, instruciunea este executat, dar
tiprirea este suprimat. Utilizarea acestui caracter la sfritul unei instruciuni n
fiiere M este necesar n situaiile n care nu se dorete afiarea datelor
intermediare. Numele de variabile i de funcii au ca prim caracter o liter, urmat de
litere, cifre sau caracterul special liniu de subliniere (adic _). Matlab-ul face
deosebirea ntre litere mari i mici. Funcia casesen permite trecerea Matlab-ului n
modul senzitiv/nesenzitiv, n vederea separrii literelor mari de cele mici. La lansare,
Matlab-ul este n modul senzitiv, iar cu comanda casesen off se trece n modul
nesenzitiv. Revenirea se face cu comanda casesen on. Numele de funcii este
obligatoriu s fie redate cu litere mici.
Fiierele de tip M sunt fiiere ce conin instruciuni Matlab i se numesc aa deoarece au extensia
m. Acestea sunt de fapt programe Matlab.
12
ndrumar de laborator
Teoria Sistemelor
Fiierele script
Dac prima linie a fiierului conine cuvntul cheie function, fiierul respectiv
este declarat ca fiier funcie. Spre deosebire de un fiier script, un fiier funcie
poate lucra cu argumente. Variabilele definite i utilizate n interiorul fiierului funcie
sunt localizate la nivelul acestuia. Deci, la terminarea execuiei unei funcii, n
memorie rmn doar variabilele de ieire ale funciei.
Forma general a primei linii a unui fiier funcie este urmtoarea:
function[param_ieire]=nume_funcie(param_intrare),
unde:
function - este cuvntul cheie care declar fiierul ca fiier funcie; prezena
acestui cuvnt cheie este obligatorie;
nume_funcie - este numele funciei, adic numele sub care se salveaz fiierul,
fr extensie. Nu poate fi identic cu cel al unui fiier M preexistent.
param_ieire - parametrii de ieire trebuie separai cu virgul i cuprini ntre
paranteze drepte (dac funcia nu are parametri de ieire, parantezele drepte i
semnul egal nu mai au sens, pot s lipseasc).
param_intrare - parametrii de intrare trebuie separai cu virgul i cuprini ntre
paranteze rotunde (dac funcia nu are parametri de intrare, parantezele rotunde nu
mai au sens, pot s lipseasc).
13
ndrumar de laborator
Teoria Sistemelor
Operatorii relaionali
Semnificaia
<
mai mic
<=
>
mai mare
>=
==
identic
~=
diferit
Operatori logici
Simbol Matlab
Prioritatea
NU (not)
I (and)
&
SAU (or)
14
ndrumar de laborator
Teoria Sistemelor
Pentru cazul n care cei doi operanzi sunt matrice, se opereaz element cu
element. Operatorul logic NU (sau complementul logic) este operator unar. Aceti
operatori au prioritate mai mic dect operatorii relaionali i aritmetici.
Operatorii logici au prioritate mai mic dect operatorii relaionali sau cei
aritmetici. n tabelul 1.5.3. este dat tabela de adevr a operatorilor logici.
Tab. 1.5.3 Tabelul de adevr al operatorilor logici
~A
A|B
A&B
FALS
FALS
ADEV.
FALS
FALS
FALS
ADEV.
ADEV.
ADEV.
FALS
ADEV.
FALS
FALS
ADEV.
FALS
ADEV.
ADEV.
FALS
ADEV.
ADEV.
expresie logic
grup de instruciuni
expresie logic
grup de instruciuni A
else
end
grup de instruciuni B
Dac funcia de calculat are mai multe nivele de instruciuni if-else este
recomandat utilizarea clauzei elseif. Aceasta are urmtoarea form general:
if
expresie logic 1
grup de instruciuni A
elseif expresie logic 2
grup de instruciuni B
elseif expresie logic 3
grup de instruciuni C
end
15
ndrumar de laborator
-
Teoria Sistemelor
expresie logic 1
grup de instruciuni A
elseif expresie logic 2
grup de instruciuni B
elseif expresie logic 3
grup de instruciuni C
else
grup de instruciuni D
end
n acest caz, dac nicio expresie logic nu este adevrat, se execut grupul
de instruciuni D.
index = expresie
grup de instruciuni
end
unde:
index - este numele contorului;
expresie - este o matrice, un vector sau un scalar;
grupul de instruciuni - este orice expresie Matlab.
n aplicaii, index = expresie are de cele mai multe ori urmtoarea form:
k = iniial:pas:final
unde:
iniial - este prima valoare a variabilei k;
pas - este pasul, dac acesta este omis, este considerat implicit 1;
final - este cea mai mare valoare pe care o poate lua variabila k.
La fiecare pas de calcul, index are valoarea unuia dintre elementele
expresiei. Dac expresia este o matrice, ciclarea se face pe coloane. Pentru un ciclu
for cu pasul negativ sau nentreg se genereaz mai nti un vector cu pasul i limitele
dorite i apoi se citesc valorile acestuia n cadrul buclei for. La folosirea buclei for
trebuie respectate urmtoarele reguli:
- indexul buclei for trebuie s fie o variabil;
- dac expresia este o matrice goal, bucla nu se execut. Se va trece la
urmtoarea instruciune dup end;
16
ndrumar de laborator
-
Teoria Sistemelor
while expresie
grup de instruciuni
end
Grupul de instruciuni este executat ct timp expresia este adevrat. Dac
expresia nu este adevrat, se trece la executarea primei instruciuni care urmeaz
dup end. Dac expresia este ntotdeauna adevrat logic, bucla devine infinit.
Not. Dintr-o bucl infinit se iese forat prin apsarea concomitent a tastelor
[Ctrl]+[C] !
Teoria Sistemelor
ndrumar de laborator
3 4
9
ndrumar de laborator
Teoria Sistemelor
S se determine:
- coloanele n care matricea are cel puin un element diferit de zero;
- coloanele n care matricea are toate elementele diferite de zero;
- coloanele n care matricea are cel puin un element mai mare ca 1.
Exerciiul 1.7.4
S se calculeze suma primelor 100 de numere naturale. Se va calcula n dou
moduri: folosind instruciunea repetitiv for i folosind instruciunea repetitiv while.
Pentru rezolvare, se vor deschide dou fiiere de tip M, n care se vor scrie cele dou
programe.
Exerciiul 1.7.5
X = [5
19