Documente Academic
Documente Profesional
Documente Cultură
1
Introducere n MATLAB
1. Generaliti
n cadrul acestei lucrri toate referinele au n vedere MATLAB versiunea
5.3.0 (R11), 21.01.1999.
Matlab [1], [2] reprezint un mediu de programare destinat calculului numeric
i reprezentrilor grafice n domeniul tiinei i ingineriei. Elementul de baz cu care
opereaz MATLAB este matricea. Este uor de extins, prin faptul c orice utilizator
poate aduga propriile funcii sau le poate modifica pe cele existente. Folosind
funciile predefinite ale MATLAB-ului se obine o important economie de timp n
crearea de noi aplicaii. Deasemenea pachetul software include un set de funcii
specifice (denumite toolbox) anumitor domenii, ca de exemplu:
-
Undioare (Wavelet)
Statistic (Statistics);
Financiar (Financial).
Exist posibilitatea modelarii, analizei i simularii sistemelor dinamice, prin
- 8 - Aplicaia nr. 1
acest categorie pot fi incluse, de exemplu, sisteme cu procesoare numerice de semnal
(DSP Blockset) sau sisteme bazate pe circuite electonice de putere (Power System
Blockset).
Adugnd la cele de mai sus i numeroasele posibiliti de reprezentare
grafic 2 sau 3D a datelor i posibilitatea interfarii codului MATLAB cu cel scris n
C sau limbaj de asamblare pentru procesoarele de semnal, avem argumentele
necesare care s justifice implementarea aplicaiilor cu reele neuronale prin
intermediul MATLAB.
Se ofer n continuare noiuni MATLAB elementare [3], necesare unei bune
nelegeri ale aplicaiilor prezentate n capitolele urmtoare.
2. Elemente de baz MATLAB
2.1 Linia de comand
Se folosete de regul pentru lansarea n execuie a programelor sau pentru
diverse comenzi MATLAB. Un program MATLAB se apleleaz tastnd n linia de
comand numele fiierului. O condiie necesar rulrii programului este setarea cii n
care acesta se gsete (din meniul principal, opiunea File, submeniu Set path). n
modul linie de comand fiecare linie este prelucrat imediat i rezultatele sunt afiate.
Linia de comand nu este recomandat pentru scrierea fiierelor MATLAB.
2.2 Crearea programelor MATLAB (fiierelor script i fiiere funcie)
Un program MATLAB, caracterizat de extensia *.m, const dintr-o
succesiune de instruciuni MATLAB, cu posibilitatea apelrii altor fiiere. El
presupune mai multe linii de cod care se pot scrie apelnd editorul MATLAB implicit.
Acesta se lanseaz prin comanda Edit.
Un fiier script conine o secven de comenzi. Dac prima linie a fiierului
Introducere n MATLAB - 9 conine cuvntul function, fiierul respectiv este declarat ca fiier funcie. O funcie
difer de un script prin faptul c poate lucra cu argumente.
Editorul ofer i faciliti de depanare (debugging) a programului prin
setarea unor puncte de oprire (breakpoints) i rularea pas cu pas a programului.
Exemplul 1.1 Scriei o funcie denumit suma care s preia drept argument dou
variabile i s returneze suma acestora.
Se apeleaz editorul prin comanda edit (fig.1.1).
!"
- 10 - Aplicaia nr. 1
Fig.1.3 Apelul funciei sum, cu parametrii (6,4). Logic, rezultatul returnat va fi 6+4 = 10.
!"
Introducere n MATLAB - 11 A=
!"
!"
Adunare +
!"
Scdere
!"
Inmulire *
!"
!"
Ridicarea la putere ^
!"
!"
!"
!"
!"
!"
Matrice nul funcia zeros (M, N). Genereaz o matrice MxN cu toate
elementele egale cu 0.
!"
Matrice unitate funcia ones (M, N). Genereaz o matrice MxN cu toate
elementele egale cu 1.
!"
Matrice identic funcia eye (N, M). Genereaz o matrice MxN n care
diagonala matricii are elementele egale cu 1, restul elementelor matricii fiind
0.
- 12 - Aplicaia nr. 1
!"
!"
!"
!"
Lungimea unui vector funcia length (x). ntoarce numrul de elemente ale
vectorului x.
2.6 Instruciuni i fucii de control
- 14 - Aplicaia nr. 1
!" Grafice 3D elementare. Exist numeroase funcii care permit diverse reprezentri
3D. Dintre acestea cele mai des folosite sunt funcia plot3 (x, y, z) care reprezint
o linie n spaiul 3D care trece prin punctele ale cror coordonate sunt triplei
(x, y, z).
Pentru reprezentarea 3D a suprafeelor se poate folosi funcia mesh (X, Y, Z). n
aceste condiii o suprafa este parametrizat prin dou variabile independente care
variaz continuu n interiorul uni dreptunghi; fiecare punct este specificat prin trei
funcii: X(i, j), Y(i, j) i Z(i, j).
Exist posibilitatea controlul culorii (mesh (X, Y, Z, C)), al luminozitii (lighting),
al punctului de observaie (view (az, el)) sau se pot modifica diverse alte proprieti ale
unei suprafee.
3. Experimente
3.1 Scriei un program MATLAB care s implementeze operaiile cu matrici descrise
n 2.3.
Rezolvare:
%Operatii cu matrici
clear all
close all
clc
disp('definirea unei constante: x=2')
x=2
pause
disp('definirea unui vector: y = [1 2 3 4 5]')
y = [1 2 3 4 5]
pause
disp('definirea
[10 7 6;3 2 0;2
A = [1 2 3; 4 5
B = [10 7 6;3 2
- 16 - Aplicaia nr. 1
Rezolvare:
%Generarea vectorilor si matricilor
clear all
close all
clc
disp('generarea unei matrici nule cu 2 linii si 4 coloane:
zeros(2,4)')
A = zeros(2,4)
pause
disp('generarea unei matrici unitate cu 3 linii si 2 coloane;
ones(3,2)')
ones(3,2)
pause
disp('generarea unei matrici identice cu 3 linii si 3 coloane:
eye(3)')
eye(3)
pause
disp('generarea unui vector cu pas liniar: a = 1:0.1:2')
a = 1:0.1:2
pause
disp('generarea unui vector cu pas logaritmic b =
logspace(1,3,5)')
b = logspace(1,3,5)
pause
disp('afisarea dimensiunilor unei matrici: size(A)')
A
size(A)
pause
disp('afisarea dimensiunii unui vector: length(x)')
a
length (a)
y*
1
e
2,+ 2
( x2
) &&
& 2+ 2
'
%
#
##
$
, pentru cazul 2D
i:
( x2 - y2 %
#
2+ 2 #$
) &&
1
z*
e '
2,+ 2
- 18 - Aplicaia nr. 1
Rezolvare:
%Grafice 2D si 3D
clear all
close all
clc
sigma=3;
disp('grafic 2D')
x=-1:.005:1;
y=(1/2*pi*sigma^2)*exp(-(x.^2/2*sigma^2));
plot(x,y)
title('Gaussian 2D')
xlabel('Axa Ox')
ylabel('Axa Oy')
pause
disp('grafic 3D')
x=-1:.01:1;
y=-1:.01:1;
[X,Y] = meshgrid(x,y);
Z=(1/2*pi*sigma^2)*exp(-(X.^2+Y.^2)/2*sigma^2);
figure
mesh(Z)
title('Gaussian 3D')
xlabel('Axa Ox')
ylabel('Axa Oy')
zlabel('Axa Oz')