Sunteți pe pagina 1din 37

MATLAB

Matrix Laboratory
Math Work Inc
Pachet de programe de inalta performanta
pentru calcul numeric si reprezentari
grafice in domeniul stiintei si ingineriei
Bibliografie: M. Ghinea, V Fireteanu.
Mathlab. Calcul numeric-grafica-aplicatii
Ed. Teora 2001

Resurse de calcul
Operatii

matematice fundamentale
Programare
Algebra liniara si functii matriceale
Analiza datelor si transformatelor Fourier
Analiza numerica neliniara
Reprezentarea graficelor 2D si 3D
Vizualizarea graficelor
Proprietati si resurse grafice
Utilizarea interfetei grafice
Import si export de documente

Realizare structurala
MATLAB

este realizat sub forma unui


nucleu de baza, cu interpretor propriu, in
jurul caruia sunt construite Toolbox-uri
Toolbox=o colectie extinsa de functii
MATLAB care dezvolta mediul de
programare, pentru a rezolva probleme
din domenii variate

Signal Processing
- pentru
procesarea
Toolbox-uri
disponibile
(selectie)

semnalelor si analiza seriilor temporale


Image Processing pentru procesarea
imaginilor si a semnalelor bidimensionale
Neural Network pentru proiectarea si
simularea retelelor neurale
Statistics pentru analiza, modelarea si
simularea datelor
Spline aproximare si modelare folosind
functii spline

Toolbox-uri disponibile (selectie)


(Fereastra Matlab/View/Launch
Pad/ Toolboxes)
Symbolic

Math este un nucleu integrat,


bazat pe pachetul MAPLE V, care cuprinde:
- calcul simbolic pentru rezolvarea
problemelor de algebra liniara si a ecuatiilor
- simplificarea simbolica a expresiilor
- evaluarea simbolica a functiilor speciale
- accesul la nucleul MAPLE

Toolbox-uri disponibile (selectie)


Control

System Design pentru analiza si


proiectarea sistemelor automate de
control
Robust Control pentru sinteza
sistemelor care trebuie sa functioneze in
conditii de incertitudine
System Identification pentru procesarea
semnalului in vederea modelarii
parametrice si analiza seriilor temporale
Analysis and Synthesis pentru analiza si proiectarea sistemelor in
prezenta incertitudinii

Lansarea in executie. Ferestrele de lucru


Fereastra Matlab
Fereastra de comenzi (Command Window) *
Spatiul de lucru (Workspace) *
Fereastra de lansare (LaunchPad) *
Fereastra Current Directory (arborele) *
Fereastra Command History *
Fereastra de editare (implicit este folosit editorul
NotePad) **
Fereastra de reprezentari grafice ***
* accesibile din Fereastra Matlab/View
** accesibile din Fereastra Matlab/New/ M-file
** accesibile din Fereastra Matlab/New/ Figure

Meniul Matlab/Start
Matlab
Toolboxes
Simulink
Blocksets
Desktop

Tools

Web
Preferences
Help
Demos

Moduri de lucru in MATLAB


(mediul de programare )
modul

linie de comanda fiecare linie


este prelucrata imediat si rezultatele sunt
afisate (comenzile se introduc in
Command Window)
modul de lucru cu programe continute in
fisiere. Fisierele ce contin instructiuni
MATLAB se numesc fisiere M, deoarece
au extensia .m (fisierele M pot apele alte
fisiere M sau pot contine apeluri
recursive)

Fisiere M
fisiere

script contin o secventa de


comenzi MATLAB . Nu permit integrarea in
programe mari, construite pe principiul
modularizarii. Sunt apelabile prin tastarea
numelui lor.
fisiere function pot lucra cu argumente.
Pot fi apelate din alte functii
Fisierele M sunt salvate implicit in
subdirectorul Work, al directorului
MATLAB
utilizatorul poate extinde functionalitatea
MATLAB pentru domeniul in care
lucreaza, adaugand noi fisiere M.

Elementul de baza cu care


lucreaza Matlab este matricea
numerica rectangulara, cu
elemente reale sau complexe

Matrice, vectori, scalari. Notatii


scalarii sunt asimilati cu o matrice 1X1 (o linie, o
coloana)
vectorii sunt asimilati cu o matrice linie (1Xn)
sau coloana (nX1)
elementele matricii A se identifica prin notatia
A(k,l)
Elementele unui vector V se identifica prin V(k)
ATENTIE ! MATLAB foloseste notatia i si j pentru
unitatea complexa (-1)1/2 . A nu se folosi i si j
pentru notarea liniilor sau coloanelor unei
matrici.

Variabile speciale si constante in

MATLAB
ans variabila creata automat, in care se

returneaza rezultatul unei expresii care nu


a avut nici un nume
eps variabila permanenta in care este
memorata eroarea relativa pentru calcule
in virgula mobila (implicit 2.2204e-016).
pi
i sau j unitatea complexa
inf plus infinit (rezultatul impartirii
1.0/0.0)
NaN Not a Number (rezultatul impartirii
0.0/0.0)

Variabile speciale si constante in


MATLAB

nargin

variabila pentru testarea


numarului de argumente de intrare a unei
functii
nargout variabila pentru testarea
numarului de argumente de iesire a unei
functii
realmax cea mai mare valoare pozitiva in
virgula mobila (1.7977e+308)
realmin- cea mai mica valoare pozitiva in
virgula mobila (2.2251e-308)

Functii de control a variabilelor din


memorie
clear

X - sterge variabila X
clear X Y Z - sterge variabilele X, Y, Z
clear sterge toate variabilele
disp X afiseaza X. X poate fi un sir de
caractere(pus intre apostrofuri), sau o
matrice
pack compacteaza memoria
clc sterge fereastra de comenzi

Importul si exportul de fisiere

load incarca date din fisierul matlab.mat


load nume fisier[.ext] incarca date din fisierul
specificat. Fisierul poate fi in format binar (in
acest caz are extensia .mat) sau poate fi un fisier
ASCII. Datele continute in fisierul incarcat se
regasesc in memorie cu numele temp
save nume_fisier nume_variabile format date
- salveaza variabilele din zona de lucru, in
fisierul specificat. Formatul poate fi ascii sau
binar
save salveaza toate variabilele din spatiul de
lucru in fisierul matlab.mat

Definirea matricilor simple


introducerea

explicita a listei de elemente.


Elementele de pe o linie sunt separate
prin spatiu sau virgula; liniile sunt
separate prin punct si virgula. Elementele
matricii se pun intre paranteze drepte.
Ex: A=[1 2 3; 4 5 6; 7 8 9]
Pentru matrici mari se pot desparti liniile
prin <enter>

Definirea matricilor simple


Generare prin instructiuni sau functii
zeros(m,n) genereaza matricea nula cu m linii, n
coloane
zeros(n)- matrice nula patratica, nxn
ones(m,n)
ones(n) - genereaza matricea unitate nxn
eye(m,n) matricea unitate. eye(n)=eye(n,n)
Matricea goala. : X = [ ].
Z = isempty (X) testeaza daca o matrice este goala
incarcare din fisiere de date externe

Definirea matricilor simple


creare

de fisiere M (script sau function)


Ex1 fisiere script: date.m contine
[6 7 8; 9 5 3; 9 8 7]
Apel la linia de comanda:
>>date
Ex2- fisiere function: date1.m contine
function[v]=date1
v=[1 2 3; 4 5 6];
Apel:
>>a=date1
>>b=a+date1

Definirea matricilor simple


Prin unirea mai multor matrici mici astfel incat
matricea rezultata sa fie rectangulara
EX:
>>a1=[1 2 5; 3 4 9]
>>a2=[5 6 ; 7 8]
>>a=[a1,a2] (nr. linii a1=nr. linii a2)
>>a3=[9 7 4]
>>b=[a1;a3] (nr. de coloanea1=nr coloane a3]

Dimensiunile matricilor
size(A)

returneaza un vector [nlinii, ncol]


[x,y] = size(A) x=nlinii, y=ncol
max(size(A))
min(size(A))
maximul si minimul dintre cele 2 dimensiuni
ale matricilor
length(V) lungimea unui sir
u = ones(size(A))

Matricea cu numere aleatoare


rand(n), rand(m,n), rand(size(A))
matrice cu numere aleatoare cu distributie
uniforma in intervalul (0.0,1.0)
randn(n), randn(m,n), randn(size(A))
numere aleatoare cu distributie normala, de
medie zero si varianta unu

Matricea cu numere aleatoare


a+rand(n) matrice patratica cu numere
aleatoare cu distributie uniforma in intervalul
(a, a+1)
a*rand(n) matrice patratica cu numere
aleatoare cu distributie uniforma in intervalul
(0, a)
a+(b-a)*rand(n) matrice patratica cu numere
aleatoare cu distributie uniforma in intervalul
( a,b)

Operatii
operaii dup regulile calculului matriceal operaii
cu matrice + , - , * , / A/B=A*B-1, \ (A\B=B/A),^.
(transpunere);
operaii dup regulile calculului scalar operaii cu
tablouri (element cu element). Sunt prefixate de
simbolul punct .* , ./, .\, .^
C=A.*B
C(k,l)=A(k,l)*B(k,l)
pentru un scalar k=conjugatul lui k
A. se transpune fiecare element
O matrice cu numere complexe la transpunere
conjuga elementele
det(A) determinantul lui A

Elementele matricilor
A(5,8)
A(1,:

) linia 1
A( :, 1) coloana 1
A(2:3, 1:2) submatrice
T=A(2,: ) >4 matrice de test pentru
elementele de pe linia 2, care sunt >4.
Coloanele care satisfac cond. dau 1, celelalte
dau 0
B=A( : , T ) acele coloane din A care
satisfac conditia ca au pe a doua linie o val
>4

Elementele matricilor si vectorilor


definirea

doar a unui singur element al


unui tablou initializeaza pe cele dinaintea
lui, care sunt nedeclarate, cu 0
dimensiunea unui vector poate fi marita
adaugadu-i un element, sau un vector:
x = [x,5]
y = [y; [-1;-2]] pt. vector coloana
y=[y, [1,2]] pt. vector linie
pt. y=[9 7 4] se obtine
[9 7 4 1 2]

Generarea vectorilor.
cu

pas liniar
V = vmin : pas :vmax rezulta
N r= [(vmax vmin)/pas] + 1
V = linspace( Vmin, Vmax, Nr puncte)
pas = (Vmax Vmin ) / (Nr-1)

cu pas logaritmic

v = logspace( vmin, vmax, Nr)


N r elemente distribuite logaritmic intre [10vmin,
10vmax].

Operatori relationali.
Care

<mai mic
<=
mai mic sau egal
>mai mare
>=
mai mare sau egal

Care

compara numai partea reala

==
~=

compara si partea complexa


identic
diferit

Comparatie

scalar cu matrice (scalarul se


extinde la dimensiunea matricei)

Operatori logici.
Simbol matlab Prioritate
nu
si
sau

~
&

1
2
3

Variabile de tip sir de caractere


sunt

tablouri.
v=info este echivalenta cu
v = [i, n, f, o]
char - creaza un vector de caractere (sir)
pornind de la codurile numerice ale
caracterelor: ex. char(34,23,78,6)
double - converteste un sir intr-un vector
al codurilor numerice ale fiecarui caracter.
ex: double(jy34)

Redimensionarea matricilor
reshape(A,p,q)

reaseaza elementele
matricii A, considerate pe coloane, sub
forma unei alte matrici cu p linii si q
coloane.
Daca notam [m,n]= size(A), este necesar
ca m*n=p*q
Elementele in noua matrice sunt asezate
coloana dupa coloana

Redimensionarea matricilor
Exemplu
V=1:8

A=reshape(V,4,2)
B=reshape(V,2,4)
B=B
Matricile generate sunt

1 3 5 7
1 2 3 4
A
; B

2 4 6 8
5 6 7 8

Redimensionarea matricilor

flipud(A) simetrizeaza matricea A fata


de axa sa de simetrie orizontala
(up=down)
fliplr(A) - simetrizeaza matricea A fata de
axa sa de simetrie verticala (left-right)
rot90(A) roteste matricea A cu 90 fata
de coltul dreapta sus in sens antiorar

Functii matematice in MATLAB


abs(x)

modul
angle(x) argumentul numarului complex
sqrt(x) radacina patrata
real(x) partea reala
imag(x) partea imaginara
conj(x) conjugatul
round(x) rotunjire la cel mai apropiat
intreg

Functii matematice in MATLAB


fix(x)

rotunjire spre zero


fix([-0.9, 1.7, 0.2, -5.6]=[0, 1, 0, -5]
floor(x) cel mai apropiat intreg <= x;
partea reala si imaginara independent
ceil(x) cel mai apropiat intreg >= x; partea
reala si imaginara independent
sign(x) semnul lui x
rem(X,Y) = X- fix(X. /Y).*Y , pentru Y~=0

Functii agregat

se aplica vectorilor si matricelor;


daca argumentul este un vector rezultatul este un
numar;
daca argumentul este o matrice, functia se aplica fiecarei
coloane, iar rezultatul este un vector linie.
Exemplu: Daca A=[1,2,3]
Atunci
1 2 3
B
sum(A)=6

4 5 6
sum(B)=[5,7,9]
sum(sum(B))=21
sum(A,2)=[6
15]
Sum(A,2) se aplica liniilor lui A si rezultatul e un vector
coloana

Sort
sorteaza elementele unui vector in
ordine crescatoare.
argumentele complexe sunt sortate
crescator dupa modulul lor, iar valorile de
modul identic se sorteaza crescator dupa
unghi.
Forma
[y,L] = sort(x)
returneaza in y matricea x sortata, iar L
este o matrice de indici.
Daca x este un vector, atunci y=x(L);

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