Sunteți pe pagina 1din 12

1.

MATLAB – prezentare, instalare, lansare în execuţie, ferestre

MATLAB este un pachet de programe dedicat calculului numeric şi reprezentării grafice în


domeniul ingineriei.
Elementul de bază cu care operează MATLAB este matricea.
MATLAB este un interpretor cu un limbaj asemănător limbajului algoritmic. Poate fi
dezvoltat cu uşurinţă prin aşa numitele toolbox-uri – colecţii extinse de funcţii (fişiere M).
Versiunea 6.1 a mediului MATLAB se livrează pe suport optic – 2 CD-uri – şi se
instalează printr-o procedură automată, implicit în partiţia activă, directorul Matlab6p1, cu un
subdirector de lucru Work.
Lansarea în execuţie se poate face cu ajutorul pictogramei de pe Desktop, prin butonul
Start → Programs → Matlab6.1 → Matlab6.1 sau din calea \Matlab6p1\bin\win32 – fişierul
matlab.exe.
Fereastra de comenzi deschisă automat la pornirea mediului conţine următoarele elemente:
• bara de nume;
• bara de meniuri cu meniurile: File, Edit, View, Web, Window, Help;
• bara de unelte şi adrese;
• fereastra propriu-zisă cu prompt-ul MATLAB " >>" .
Meniul File, grupul New, conţine comenzi pentru deschiderea ferestrelor:
• M-file;
• Figure;
• Model;
• GUI.
Meniul View conţine comenzi-comutatori pentru validarea prezenţei ferestrelor:
• Command Window;
• Command History;
• Current Directory;
• Workspace;
• LaunchPad;
• Help.

2. Funcţii MATLAB generale

2.1. Funcţii de ieşire din mediu


exit (quit) - părăsirea sesiunii de lucru.
2.2. Funcţii de control general
help - afişează lista funcţiilor MATLAB;
help funcţie - afişează informaţii despre funcţia precizată;
what - listează fişierele .m, .mat, .mex din directorul curent;
type fişier- listează conţinutul fişierului menţionat ca argument;
which - întoarce calea în care se află fişierul menţionat ca argument;
path - returnează căile cu care lucrează MATLAB;
who - listează numele variabilelor curente;
whos - listează numele variabilelor curente, dimensiunile şi tipurile lor.

1
2.3. Funcţii de control directoare, fişiere şi sistem de operare
cd - returnează sau schimbă directorul curent;
dir - listează conţinutul directorului curent;
delete - şterge fişierul specificat ca argument;
! - execută comanda DOS precizată ca argument.
2.4. Funcţii asociate ferestrei de comenzi
clc - şterge conţinutul ferestrei de comenzi.
2.5. Funcţii de control al variabilelor din memorie
disp(arg) - afişează o matrice sau un text specificate ca argument;
ex: >> for i=1:4
y=[i,5*i^2,2^i];
disp(y);
end
1 5 2
2 20 4
3 45 8
4 80 16
>> disp('Constructii')
Constructii
>>
clear - şterge toate variabilele şi funcţiile declarate în sesiunea în curs;
clear a b - şterge toate variabilele a şi b;
size(arg) - returnează dimensiunea unei matrice specificată ca argument;
ex: >> a=[1 2;3 4;5 6];
>> b=size(a)
b=
3 2
length(arg) - returnează lungimea maximă a matricei specificată ca argument sau
lungimea vectorului specificat;
ex: >> x=length(a);
x=
3
>> y= length(b)
y=
2

3. Variabile speciale şi constante MATLAB

ans - variabilă creată automat când lipseşte membrul stâng al instrucţiunii de


atribuire;
pi - variabilă permanentă conţinând valoarea 3.1416;

4. Importul şi exportul fişierelor de date

load - încarcă variabilele dintr-un fişier de date specificat;

2
save - salvează variabilele curente în fişierul specificat;
sintaxa: load/save fişier[.ext][-format];
ex: >> clear;
>> a=[1 2;3 4];
>> b=[5 6;7 8];
>> save mat_ab.dat –ascii;
>> load mat_ab.dat;
>> ab=mat_ab
ab =
1 2
3 4
5 6
7 8

5. Introducere în programarea MATLAB

5.1. Matrice, vectori, scalari


Matricea este singurul obiect cu care lucrează MATLAB. Vectorul este matricea cu o
singură dimensiune (nx1 sau 1xn). Scalarul este matricea cu o linie şi o coloană (1x1).
Exemple (notaţii matematică):

 3 π 0 4 1
 1 2    
A=   (2x2) B =  2 7 1 9 (3x4) C =  2 (3x1)

 3 4  5 8 6 3
   3
D = [1 3 5 7] (1x4) E = [7] (1x1)

Notaţia MATLAB pentru o matrice este de forma a(i,j), iar referirea la un element al
matricei se face prin notaţia x=a(2,2), ceea ce înseamnă x=4.
5.2. Definirea matricelor simple
Se poate face prin:
a) Introducerea explicită a listei elementelor într-unul din formatele:
a=[1 2;3 4] sau a=[1,2;3,4] sau a=[1 2Enter3,4];
separatorul dintre coloane (dintre elementele unei linii) este spaţiul sau (,)
separatorul dintre linii (dintre elementele unei coloane) este (;) sau Enter;
ex: >> x=[1,2,3,4]
x=

3
1 2 3 4
>> y=[1;2;3;4]
y=
1
2
3
4
b) Generarea prin instrucţiuni şi funcţii
ex: >> clear;
>> k=3;b(k)=5
b=
0 0 5
>> t=1:2:7
t=
1 3 5 7
>> r=randn(2,3)*17
r=
-7.3536 2.1306 -19.4900
-28.3149 4.8905 20.2456
c) Încărcarea dintr-un fişier de date (vezi exemplul de la §4).
5.3. Elementele matricelor
Pot fi numere reale sau complexe şi orice expresie MATLAB.
ex: >> clear;
>> a=[-1.3 sqrt(3) (1*2*3)/5
a=
-1.3000 1.7321 1.2000
>> b=a(2)
b=
1.7321
Matricea sau vectorul poate fi extins prin introducerea unui element şi completarea cu zero
a elementelor nedefinite.
ex: >> a(5)=abs(a(1))
a=
-1.3000 1.7321 1.2000 0 1.3000
>> c=[1 2;3 4];
>> c(2,4)=6
c=
1 2 0 0
3 4 0 6
O matrice mare poate fi construită din matrice mici folosite ca elemente.
ex: >> clear;
>> a1=[1 2;3 4]; a2=[5 6;7 8];
>> b=[a1;a2]
b=
1 2
3 4

4
5 6
7 8
>> c=[a1 a2]
c=
1 2 5 6
3 4 7 8

O matrice poate fi extrasă dintr-o matrice mai mare folosind semnul (:) într-o expresie de
forma:
>> d=c(:,2:4)
d=
2 5 6
4 7 8
adică matricea d se formează din c extrăgând toate liniile şi coloanele 2 la 4.
5.4. Declaraţii şi variabile – elemente de sintaxă
Instrucţiunea de atribuire joacă şi rolul de declaraţie. Are două forme:
a) variabilă=expresie sau
b) expresie.
În cazul al doilea valoarea expresiei este atribuită variabilei speciale ans.
ex: >> 3/4
ans =
0.7500
O expresie se compune din operanzi, operatori şi funcţii. În urma evaluării expresiei se
obţine o matrice, care se atribuie unei variabile.
Orice instrucţiune se termină cu:
a) Enter sau
b) ;Enter
În primul caz instrucţiunea se execută cu tipărirea rezultatului, iar în al doilea fără tipărire.
ex: >> a=[1 2;3 4] Enter cazul a)
a=
1 2
3 4
>> b=[5 6;7 8]; Enter cazul b)
>>
Tastarea numelui unei variabile urmat de Enter afişează valoarea acesteia.
Dacă expresia are o lungime foarte mare se foloseşte combinaţia: spaţiu ... Enter pentru
continuare pe linia următoare.
Spaţiile dintre operanzi şi operatori sunt opţionale.
Numele de variabilă sau funcţie este format din litere, cifre şi underline; primul caracter
este literă, iar lungimea maximă este de 19 caractere.
MATLAB este case sensitive în mod implicit şi poate comuta în modul nesenzitiv cu
comanda:
>> casesen off cu revenire la:
>> casesen on
5.5. Numere şi expresii aritmetice

5
Reprezentarea numerelor se poate face în virgulă fixă:
14 =14 -123 = -123 1.02437 = 1.0244 -.0345 = -0.0345
sau în virgulă mobilă:
1.23456e+2 = 123.4560 234.567e-3 = 0.2346
Ordinul de mărime este 10 pentru valori supraunitare şi 10-308 pentru valori subunitare.
308

Operatorii aritmetici utilizaţi sunt următorii:


+ adunare, - scădere, * înmulţire, / împărţire la dreapta şi \ împărţire la stânga.
5.6. Tipuri de programe MATLAB
a) programe introduse linie cu linie în modul linie de comandă;
b) programe memorate în fişiere script (fişiere salvate cu extensia .m);
c) programe memorate în fişiere function (fişiere script care conţin în prima linie cuvântul
cheie function ).
Prin apelarea numelui fişierului script conţinutul acestuia este încărcat şi lansat în execuţie.
Script-urile propriu-zise nu pot fi integrate în programe ca subrutine.
Fişierele function au prima linie de forma:
function [parametri_ieşire]=nume_funcţie(parametri_intrare)
în care:
function - cuvânt cheie care declară fişierul ca atare;
parametri_ieşire - lista parametrilor de ieşire; dacă lipsesc, parantezele drepte
şi semnul = nu mai au sens;
nume_funcţie - numele cu care a fost salvat fişierul;
parametri_intrare - lista parametrilor de intrare; dacă lipsesc, parantezele
rotunde nu mai au sens.
Fişierele funcţie pot fi adăugate ca funcţii noi în structura MATLAB.
Exemplu de creare şi utilizare a unui fişier function :
• Se deschide o ferastră de editare: File, New, M-file.
• Se editează secvenţa de program:
function m=medie(x)
n=length(x);
m=sum(x)/n;
y=['Media numerelor este: ',num2str(m)];
disp(y)
• Se salvează secvenţa într-un fişier cu numele medie.m: File, Save as... .
• În fereastra de comenzi poate fi introdusă secvenţa:
>> a=[12,14,16,18,20];
>> medie(a)
Media numerelor este:16
Dacă este omisă prima linie a fişierului medie.m, acesta devine script şi nu mai poate fi
folosit ca subprogram.
Funcţia num2str converteşte conţinutul variabilei m în şir de caractere.
Variabila y este un vector cu elementele: y(1)=M, y(2)=e, y(3)=d, ... , y(22)=1, y(23)=6.

6. Instrucţiuni de control logic

6.1. Instrucţiunea condiţională if

6
Forma 1: Forma 2:
if expresie_logică if expresie_logică
secvenţa_instrucţiuni; secvenţa_instrucţiuni_1;
end; else
secvenţa_instrucţiuni_2;
end;
Expresia logică conţine operanzi şi operatori aritmetici, relaţionali şi logici.

Operatorii relaţionali sunt următorii:


< mai mic, <= mai mic sau egal, > mai mare, >= mai mare sau egal, = = egal, ~= diferit.
Operatorii relaţionali compară două matrice cu dimensiuni egale, element cu element şi
returnează o matrice de aceeaşi dimensiune cu matricele comparate, având elementele 1 când
relaţia este adevărată şi 0 când relaţia este falsă.
În cazul numerelor complexe primii patru operatori ignoră partea imaginară.
Forma generală de utilizare a operatorilor relaţionali este:
rezultat = expresie_1 operator_relaţional expresie_2
ex: >> a=[1 –i 0;2-i 0 1+i];
>> b=[1 –i i;2-i 2 1-5*i];
>> c=a>=b
c=
1 1 1
1 0 1
>> d=a= =b
d=
1 1 0
1 0 0
Operatorii logici sunt următorii:
~ nu prioritate 1
& şi prioritate 2
| sau prioritate 3
Operatorii logici & şi | compară scalari sau două matrice de dimensiuni egale (element cu
element) şi returnează 1 pentru orice valoare diferită de zero.
În MATLAB orice valoare diferită de zero este considerată adevărată logic, adică 1.
Operatorii logici au prioritate mai mică decât operatorii relaţionali şi aritmetici.
ex: >> a=1&0+3
a=
1
>> b=3>4&1
b=
0
Rezolvarea ecuaţiei de gradul II se poate face prin apelarea unei funcţii salvată în fişierul
ecgr2.m având următorul conţinut:
function[x,x1,x2]=ecgr2(a,b,c)
if a= =0
x=-c/b
else
d=b^2-4*a*c

7
if d<0
disp('Ec.nu are rad.R')
else
x1=(-b-sqrt(d))/(2*a)
x2=(-b+sqrt(d))/(2*a)
end
end

Secventa de apelare este:


>> a=1;b=-3;c=2;
>> ecgr2(a,b,c)
d=
1
x1 =
1
x2 =
2
6.2. Instrucţiunea repetitivă for
Forma:
for index=iniţial:pas:final
secvenţa_instrucţiuni
end
Pasul implicit este 1. Secvenţa de instrucţiuni este executată de N ori:

final −initial
N= +1
pas

Exemplu:
Fie script-ul niv_trig.m cu următorul conţinut:

% Nivelment trigonometric
clear;
ui = [312.25,288.45,304.63,314.75,306.15,104.55,86.32,114.54,123.56];
di = [123.52,98.45,101.32,88.95,114.24,78.50,141.25,94.25,106.25];
cc = 640;
dc = 0;
for i=1:9
ui(i) = (abs(ui(i)-200)-100)*pi/200;
do(i) = di(i)*cos(ui(i))^2;
dn(i) = do(i)*tan(ui(i));
dc = dc+do(i);
cc = cc+dn(i);
end;
dist=['Distanta cumulata:',num2str(dc)];
cota=['Cota cumulata :',num2str(cc)];
disp(dist);

8
disp(cota);

Script-ul poate fi apelat de pe linia de comandă:


>> niv_trig
Distanta cumulata:907.1657
Cota cumulata :651.1255
>>
6.3. Instrucţiunea repetitivă while
Forma:
while expresie
secvenţa_instrucţiuni
end
Secvenţa de instrucţiuni se execută cât timp expresie are toate elementele nenule. Expresia
are forma:
expresie_1 operator_relaţional expresie_2
Exemplu:
Fie script-ul dim_int.m cu următorul conţinut:

% Dimensionare la intindere axiala;


clear;
n=10000;r=1200;p=.5;
a=n/r;
k=1;b(k)=p;
while b(k)<=a
h(k)=a/b(k);
k=k+1;
b(k)=b(k-1)+p;
end;
for i=1:k-1
bh=['b=',num2str(b(i)),' h=',num2str(h(i))];
disp(bh);
end;

Script-ul poate fi apelat de pe linia de comandă:


>> dim_int
b=0.5 h=16.6667
b=1 h=8.3333
b=1.5 h=5.5556
b=2 h=4.1667
b=2.5 h=3.3333
b=3 h=2.7778
b=3.5 h=2.381
b=4 h=2.0833
b=4.5 h=1.8519
b=5 h=1.6667
b=5.5 h=1.5152

9
b=6 h=1.3889
b=6.5 h=1.2821
b=7 h=1.1905
b=7.5 h=1.1111
b=8 h=1.0417
>>

7. Lucrul cu şiruri de caractere

Şirul de caractere este o constantă reprezentată pe un şir de octeţi, fiecare conţinând codul
ASCII al unui caracter. Pe linia de program şirul este constituit din unul sau mai multe caractere
delimitate de apostrofuri.
7.1. Funcţii generale
abs(arg) - converteşte şirul de caractere specificat ca argument în valori numerice
ale codului ASCII
ex: >> y=abs('ABCDabcd0123')
y=
65 66 67 68 97 98 99 100 48 49 50 51
>>
setstr(arg) - converteşte valori numerice ale codului ASCII în şir de caractere
ex: >> cif=[48:57];
>> cifre=setstr(cif)
cifre =
0123456789
>> lima=[65:90];
>> literemari=setstr(lima)
literemari =
ABCDEFGHIJKLMNOPQRSTUVWXYZ
>> limi=[97:122];
>> literemici=setstr(limi)
literemici =
abcdefghijklmnopqrstuvwxyz
>>
7.2. Conversia şir-număr şi număr-şir
num2str(arg) - converteşte un număr reprezentat intern într-un şir de caractere
ex: >> npi=['Valoarea lui Pi este:',num2str(pi)]
npi =
Valoarea lui Pi este:3.1416
>>
str2 num(arg) - converteşte un şir de caractere în număr
ex: >> n123='123';
>> x=5+str2num(n123)
x=
128

10
>>

8. Generarea vectorilor şi matricelor

8.1. Funcţii generale


zeros(arg) - generează matricea nulă
ex: >> a=zeros(2,3)
a=
0 0 0
0 0 0
>>
ones(arg) - generează matricea unitate
ex: >> b=ones(2,3)
b=
1 1 1
1 1 1
>>
rand(arg) - generează numere aleatoare din intervalul (0;1) cu distribuţie
uniformă
ex: >> x=rand(1,5)
x=
0.2311 0.6068 0.4860 0.8913 0.7621
>> y=rand(2,3)
y=
0.4565 0.8214 0.6154
0.0185 0.4447 0.7919
>>
randn(arg) - generează numere aleatoare cu distribuţie normală
ex: >> z=randn(1,5)
z=
-0.4326 -1.6656 0.1253 0.2877 -1.1465
>>
linspace(arg) - generează vector cu pas liniar, argumentul fiind de forma:
amin:amax:N
unde
amin = elementul minim
amax = elementul maxim
a max − a min 
numărul N =   +1
 pas 

11
ex: >> x=linspace(1,7,4)
x=
1 3 5 7
>> x=linspace(1,11,4)
x=
1.0000 4.3333 7.6667 11.0000
>>

Menţinerea pasului constant se poate obţine fără funcţia linspace utilizând forma:
amin:pas:amax

ex: >> y=1:2:7


y=
1 3 5 7
>> z=1:2:11
z=
1 3 5 7 9 11
>>

12

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