Sunteți pe pagina 1din 48

MATLAB

Mediu de programare pentru calcul numeric i reprezentri grafice

Bibliografie
M. Ghinea, V. Fireeanu Ed. Teora, 1995

MATLAB Calcul numeric, Grafic, Aplicaii,

M. Ghinea, V. Fireeanu - MATLAB Ed. Teora, 2003


S. Curteanu -

Calcul numeric, Grafic, Aplicaii,

Iniiere n Matlab, Ed. Polirom, 2008 S. Ioni, P. Anghelescu, A.T. Stnescu Calcul numeric ingineresc. Mediul Matlab,
Ed. Matrixrom, 2007 MATLAB. High-Performance Numeric Computation and Visualisation Software. Reference Guide, The MATH WORKS Inc., Natick, Massachusetts, 1992

ETTER, D. M., Engineering Problem Solving with MATLAB, Prentince Hall, New Jersey, 1993
MARCUS, M. - Matrices and MATLAB: a Tutorial, Prentince Hall, New Jersey, 1993

11/20/12

MATLAB (MATrix LABoratory)


MATLAB este un pachet de programe de nalt performan, dedicat calculului numeric i reprezentrilor grafice n domeniul tiinei i ingineriei. Integreaz analiza numeric, calculul matriceal, procesarea semnalelor i reprezentrile grafice ntr-un mediu uor de nvtat 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. Elementul de baz cu care opereaz MATLAB-ul este matricea. Cu acesta se pot rezolva probleme fr a fi necesar scrierea unui program ntr-un limbaj de programare. MATLAB-ul este acum un standard n mediile universitare, precum i n domeniile cercetrii i rezolvrii practice a problemelor legate de procesarea semnalelor, identificarea sistemelor, controlul statistic, prelucrarea datelor experimentale, prelucrarea imaginilor, etc.
11/20/12 3

Resurse de calcul i reprezentare grafic:


Operaii matematice fundamentale
Calcule cu matrice i tablouri; Operatori relaionali i logici; Funcii trigonometrice i hiperbolice, exponeniala, logaritmul, etc.; Funcii speciale: Gamma, Bessel, Euler, eliptic, etc.; Calcule cu polinoame; Aritmetic n virgul mobil IEEE (15 cifre zecimale n rezultat).

Algebr liniar i funcii matriceale



11/20/12

Analiza matriceal; Ecuaii liniare; Descompunerea n valori proprii i valori singulare; Generarea matricelor; Algoritmi pentru matrice rare.
4

Resurse de calcul i reprezentare grafic:


Analiza datelor i transformatele Fourier
Corelaia, covariana, diferenele finite; Transformata Fourier rapid (FFT) ; Media statistic, mediana i deviaia standard; Interpolarea datelor.

Analiza numeric neliniar


Ecuaii difereniale; Integrarea numeric; Aproximarea trecerilor prin zero; Minimizarea.

11/20/12

Resurse de calcul i reprezentare grafic:


Programare
Structuri de control; Citirea/scrierea din/n fiiere format ASCII sau binar; Depanarea fiierelor program; Crearea interfeelor grafice interactive (GUI).

Reprezentarea graficelor 2D i 3D
Folosirea pixelilor, liniilor, poligoanelor pline, liniilor de contur; Utilizarea diagramelor polare, de bare sau a histogramelor; Reprezentarea n coordonate liniare, semilogaritmice i logaritmice; Reprezentarea suprafeelor.

Vizualizarea graficelor

11/20/12

Controlul culorilor i a poziiei sursei de lumin; Vizualizri volumetrice; Afiarea imaginilor; Animaie.
6

Resurse de calcul i reprezentare grafic:


Proprieti i resurse grafice
crearea i manipularea figurilor; desenarea, scalarea, etichetarea i colorarea axelor; desenarea i manipularea liniilor i textului.

Utilizarea interfeei grafice (Graphical User Interface - GUI)


crearea meniurilor pentru bara superioar (pull-down) i meniurilor icoan (pop-up); crearea butoanelor selectabile prin apsare (push buttons), butoanelor radio (radio buttons), cutiilor de dialog (check boxes) i cursoarelor liniare (sliders); cutii de dialog cu texte editabile sau fixe; utilizarea mouse-ului pentru detectarea unui eveniment sau a unei condiii impuse, sau pentru lansarea unei comenzi.

11/20/12

Resurse de calcul i reprezentare grafic:


Schimbul de documente
importul i exportul fiierelor n/din format ASCII, binar sau hexa; transmiterea graficelor n formatul standard META; compatibilitate cu formatul Clipboard.

Cea mai important caracteristic a MATLAB-ului este uurina cu care poate fi extins. Prin aceasta, orice utilizator poate adauga propriile programe scrise n MATLAB la fiierele originale, dezvoltnd aplicaii specifice domeniului n care lucreaz.

De asemenea, MATLAB-ul include aplicaii specifice, numite TOOLBOX-uri.


11/20/12 8

Toolbox-uri
Acestea sunt colecii extinse de funcii MATLAB (fiiere M) care dezvolt mediul de programare de Ia o versiune Ia alta, pentru a rezolva probleme din domenii variate. Structural, MATLAB-ul este realizat sub forma unui nucleu de baz, cu interpretor propriu, n jurul cruia sunt construite toolbox-urile.

The MATH WORKS Inc. a pus n circulaie urmtoarele toolbox-uri:


SIGNAL PROCESSING IMAGE PROCESSING SYMBOLLIC MATH NEURAL NETWORK STATISTICS

SPLINE CONTROL SYSTEM DESIGN ROBUST CONTROL SYSTEM IDENTIFICATION

OPTIMISATION AEROSPACE BIOINFORMATICS, FUZZY LOGIC, etc.

11/20/12

Toolbox-uri
SIGNAL PROCESSING - recomandat pentru procesarea semnalelor i analiza seriilor temporale; cuprinde urmtoarele grupe de funcii: implementarea i proiectarea filtrelor analogice i digitale; analiza i estimarea spectrului; simularea rspunsului filtrelor; transformatele FFT, DCT, etc. ; modelarea parametric; modularea i demodularea. IMAGE PROCESSING - este o colecie de functii avansate pentru procesarea imaginilor i a semnalelor bidimensionale; cuprinde urmtoarele grupe de funcii: proiectarea filtrelor 2-D i filtrarea semnalelor bidimensionale; reconstituirea i extragerea imaginilor; operaii de colorare, geometrie i morfologie; transformri bidimensionale; analiza i statistica imaginilor.
10

11/20/12

Toolbox-uri
SYMBOLIC MATH - este un nucleu integrat, bazat pe pachetul software MAPLE V; cuprinde urmtoarele grupe de funcii: calculul simbolic pentru rezolvarea problemelor de algebr liniar i a ecuaiilor; simplificarea simbolic a expresiilor; evaluarea simbolic a funciilor matematice speciale; accesul Ia nucleul MAPLE, includerea librriilor i a pachetului de algebr liniar.

NEURAL NETWORK - pentru proiectarea i simularea retelelor neurale; cuprinde urmtoarele grupe de funcii: funcia de transfer sigmoid, liniar, limit i concurenial; reele asociative, cu punct de oprire, cu transformare de caracteristici, cu autoorganizare, Hopfied, Kohonen, Widrow-Hoff; arhitecturi cu estimri recurente, succesive; funcii pentru analiza grafic a rezultatelor; straturi, elemente i conexiuni nelimitate.

11/20/12

11

Toolbox-uri
STATISTICS - este o colecie de funcii folosite pentru analiza, modelarea i simularea datelor, care conine: analiza grafic interactiv (GUI); distribuiile beta, binomial, hi-ptrat, Poisson, etc..; generarea numerelor aleatoare; calcule de regresie, liniar i polinomial, varian; descrieri statistice; teste statistice; analiza interactiv a liniilor de contur. SPLINE - aproximeaz i modeleaz datele prin intermediul funciilor: interpolri polinomiale i funcii B-spline; construirea funciilor spline i operarea cu acestea; aproximarea curbelor i netezirea acestora; calculul derivatei, integralei i evaluarea funciilor.

11/20/12

12

Toolbox-uri
CONTROL SYSTEM DESIGN - este utilizat pentru analiza i proiectarea sistemelor automate de control i conine: tehnici moderne i clasice; sisteme n timp continuu i n timp discret; spaiul strilor i funciile de transfer ale modelelor; interconectarea sistemelor; transformri ntre modele; rspunsul n frecvent: Bode, Nyquist, Nichols, SVD; locul rdcinilor, plasarea polilor, LOG. OPTIMISATION - este o colecie de funcii utilizate pentru optimizarea liniar i neliniar: programare liniar i programare ptratic; determinarea minimului i maximului; funcii neliniare rezolvate n sensul celor mai mici ptrate; optimizarea constrngerilor; rezolvarea ecuaiilor neliniare; rezolvarea problemelor de minimax i semi-infinite; optimizarea multiobiectiv.
13

11/20/12

Interfaa MATLAB

11/20/12

14

Interfaa MATLAB

11/20/12

15

FUNCII MATLAB DE INTERES GENERAL Funcii pentru lansarea i ieirea din MATLAB
Funciile pentru lansarea unei sesiuni de lucru n MATLAB, prsirea acesteia, precum i pentru asigurarea unor informaii necesare unei funcionri corecte sunt:
startup matlabrc Fiier M, executat la activarea MATLAB-ului; Fiierul principal pentru lansarea MATLAB-ului (conine toate cile de acces la fiierele de lucru, precum i setrile parametrilor de lucru pentru mediul de programare MATLAB); Comanda pentru ieirea din MATLAB.

exit, quit

Lansarea n execuie a MATLAB-ului apeleaz automat fiierul matlabrc.m. Pe un calculator la care au acces mai muli utilizatori sau pe reele de calculatoare, acest fiier este rezervat managerului de sistem.

11/20/12

16

Dac fiierul matlabrc.m conine instruciunile: if exist('startup')==2 startup end atunci este apelat i fiierul startup.m.

Acest procedeu permite crearea unor fiiere M adiionale, care pot fi apelate la lansare pentru: pentru citirea unor parametri, scale de etalonare, coeficieni de corecie, etc., pentru verificarea unor condiii care trebuie ndeplinite pentru ca programul lansat s se execute corect.
De asemenea, constantele fizice, factorii de conversie ai unitilor de msur sau orice alt constant predefinit ntr-o aplicaie se pun n aceste fiiere.
11/20/12 17

Prsirea sesiunii de lucru se face prin una din posibilitile: selectarea succesiv a opiunilor File/Exit MATLAB, scrierea explicit n fereastra de comenzi a comenzilor exit sau quit.

Acest procedeu de prsire a unei sesiuni de lucru determin pierderea variabilelor din aplicaia curent.

11/20/12

18

Funcii de control general


Pentru controlul general al mediului de programare MATLAB se utilizeaz funciile:

help what type lookfor


which path who whos exist

Furnizeaz informaii on-line" despre MATLAB i funciile acestuia; Listeaz fiierele .M, .MAT i .MEX din folderul curent; Listeaz fiierul M, menionat; Returneaz numele fiierelor care au n prima linie a HELP-ului (linia H1) cuvintele precizate ca argument; Returneaz calea n care este localizat un fiier sau o funcie MATLAB; Returneaz cile cu care lucreaz MATLAB-ul (n care sunt cutate fiierele apelate); Listeaz variabilele curente din memorie; Listeaz variabilele curente, dimensiunile lor, precum i tipul acestora (reale sau complexe); Verific dac o variabil exist n mediul MATLAB.

11/20/12

19

Help-ul on-line"
Funcia help furnizeaz informaii on-line" pentru orice funcie MATLAB sau realizat de un utilizator al pachetului de programe.

Lista funciilor se obine tastnd: help iar informaiile specifice se obin tastnd: help subiect
Subiect" poate fi un nume de funcie sau un nume de director. Dac acesta este nume de funcie, help-ul afieaz informaii despre funcie. Dac acesta este nume de director, afieaz fiierele coninute n directorul specificat.

Prin acelai procedeu se pot scrie help-uri i pentru fiierele M sau toolbox-urile proprii utilizatorului.
11/20/12 20

Sistemul de help al MATLAB-ului este foarte usor de extins.


La apelarea funciei help fr parametri se afieaz prima linie a fiierelor coninute n fiecare director din calea de cutare. Fiierele M coninute n fiecare director sunt citite din fiierul contents.m al acestuia. Instruciunea help subiect, n care subiect" este numele unui director, afieaz Iiniile de comentariu ale fiierului contents.m localizat n acel director. Dac fiierul contents.m nu are comentariu, funcia help afieaz toate fiierele coninute n director.

Dac subiect' este numele unei funcii, afieaz liniile primului comentariu al fiierului M, numit subiect.m.
Instruciunea: help help returneaz informaii despre modul de utilizare al help-ului. Instruciunea: help what prezint help-ul funciei MATLAB what.
11/20/12 21

Informaii despre fiierele unui director


what
Funcia what returneaz informaii referitoare Ia fiierele *.m, *.mat i *.mex din directorul curent. Dac se apeleaz cu un nume de director (sau numai ultimul subdirector), se afieaz aceeai grup de fiiere coninute n directorul (subdirectorul) din calea specificat. De exemplu: what general returneaz: M-files in directory c:\matlab\toolbox\matlab\general cd diary getenv length memory readme unix whos cedit dir help load more save ver adic numele fiierelor din subdirectorul general.

which
Funcia which returneaz calea n care se gsete un anumit fiier menionat ca argument. Astfel, instruciunea which demo returneaz: c:\matlab\toolbox\matlab\demos\demo.m adic localizarea fiierului demo.m.
11/20/12 22

Informaii despre fiierele unui director


lookfor
Funcia lookfor listeaz toate numele de fiiere din toi directorii care au n prima linie a help-ului cuvintele menionate ca argument, precum i acea linie. Se apeleaz cu sintaxa: lookfor cuvinte_cutate_n_linia_de_help De exemplu, instruciunea: lookfor ifft caut n help-ul tuturor fiierelor din toate directoarele din cile de lucru MATLAB cuvntul ifft, i returneaz: IFFT Inverse discrete Fourier transform IFFT2 Two-dimensional inverse discrete Fourier transform care sunt numele fiierelor i prima linie a help-ului n care se gsete cuvntul ifft.

11/20/12

23

Informaii despre variabilele dintr-un fiier


Instruciunile introduse ntr-o sesiune MATLAB creeaz variabile care sunt memorate n spaiul de lucru i pot fi identificate cu funciile who i whos. Funcia who listeaz numele variabilelor din spaiul de lucru; se apeleaz cu sintaxa: who i returneaz: Your variables are: D XF ans p x Funcia whos furnizeaz suplimentar informaii referitoare la dimensiunea fiecrei variabile curente; se apeleaz cu sintaxa: whos i returneaz: Name Size Elements Bytes Density Complex D 1 by 8 8 64 Full No

11/20/12

24

Informaii despre variabilele dintr-un fiier


Funcia exist se apeleaz cu sintaxa: exist(nume_variabil) i returneaz: 0 - dac nume_variabil" nu exist; 1 - dac nume_variabil" este o variabil n spaiul de lucru; 2 - dac nume_variabil" este un fiier M ntr-una din cile MATLAB; 3 - dac nume_variabil" este un fiier-MEX ntr-una din cile MATLAB; 4 - dac nume_variabil" este o funcie SIMULINK; 5 - dac nume_variabil" este o construcie intern MATLAB. Numele variabilei trebuie s fie scris ntre apostrofuri (' ').

11/20/12

25

Funcii pentru controlul directoarelor, fiierelor i al sistemului de operare


cd dir delete Returneaz sau schimb directorul curent; Listeaz coninutul directorului curent; terge fiierul precizat, de pe disc;

!
diary

Execut comenzi din sistemul de operare DOS, fr prsirea MATLAB-ului;


Salveaz sesiunea de lucru (fr partea grafic) ntr-un fiier text (ASCII).

11/20/12

26

Controlul directoarelor i fiierelor

Comenzile dir, type, delete i cd implementeaz un set de comenzi generale ale sistemului de operare, care permit manipularea fiierelor de pe disc. Comanda dir, care se apeleaz cu sintaxa: dir afieaz numele tuturor fiierelor din directorul curent sau din orice alt director precizat ca argument. Comanda delete permite tergerea unui fiier sau a unui grafic; se apeleaz cu sintaxa: delete nume_fiier Funcia cd returneaz numele directorului curent, dac se apeleaz cu sintaxa: cd sau schimb directorul, dac se apeleaz cu sintaxa: cd cale/nume_director

11/20/12

27

Controlul directoarelor i fiierelor


Funcia diary creeaz pe disc un fiier al sesiunii de lucru in MATLAB (fr grafice). Practic nregistreaz toate comenzile i rspunsurile returnate ntr-un fiier ASCII. Apelat cu sintaxa: diary nume_fiier funcia realizeaz o copie a sesiunii de lucru, att a comenzilor de intrare ct i a rspunsurilor returnate. Nume_fiier este numele fiierului n care se face nregistrarea. Dac fiierul exist deja, sesiunea de lucru se anexeaz Ia sfritul acestuia. Suspendarea nregistrrii se realizeaz cu comanda: diary off iar reluarea nregistrrii se face cu comanda: diary on Dac nu a fost specificat nume_fiier, funcia diary nregistreaz sesiunea de lucru ntr-un fiier cu nume implicit diary.
11/20/12 28

Rularea programelor externe


Semnul de exclamare !" plasat Ia nceputul unei Iinii de program MATLAB indic mediului de programare c urmtoarele linii de intrare sunt introduse din sistemul de operare. Acest semn permite lansarea n execuie a unor programe externe, fr a prsi mediul MATLAB, precum i executarea oricror comenzi DOS (formatarea sau copierea unei dischete, etc). De exemplu: !tp lanseaz mediul Turbo Pascal. La ieirea din mediul sau programul apelat, controlul este returnat MATLAB-ului. Instruciunea: !format A: permite formatarea unei dischete care se afl n unitatea A.

11/20/12

29

Funcii de control al mrimilor de timp


clock cputime date etime tic, toc Funcie pentru citirea ceasului calculatorului; Funcie pentru determinarea timpului de calcul al CPU"; Funcie pentru citirea datei din SETUP-ul calculatorului; Cronometreaz intervalul de timp ntre dou evenimente; Funcii pentru pornirea i oprirea unui cronometru.

Funcia clock returneaz un vector linie de ase elemente coninnd timpul curent i data n format zecimal: [an lun zi ora minut secund]. De exemplu, cu instruciunea: DATA=fix(clock) se obine rezultatul: DATA=[2012 10 09 13 5 52] care are semnificaia: anul 2012, luna octombrie(10), ziua 9, ora 13, minutul 5, secunda 52. Funcia date returneaz un ir de caractere coninnd data n formatul: zi-luna-an. De exemplu: D=date returneaz: D=[09-October-2012]

11/20/12

30

Funcii de control al mrimilor de timp


Funcia etime cronometreaz un interval de timp. Se apeleaz cu sintaxa: etime(t1,t0) unde momentele t1 i t0 sunt momentele de timp final i iniial. Exemplu S se scrie un program care s determine timpul necesar calculului transformatei Fourier rapide (FFT) n 2048 puncte. Cu secvena de instruciuni MATLAB: x = randn(2048,1); t0 = clock; XF=fft(x); % secvena cronometrat durata = etime(clock,t0) se obine rspunsul (n secunde): durata = 0.0600
11/20/12 31

Funcii asociate ferestrei de comenzi

clc home

terge fereastra de comenzi; Mut cursorul n poziia iniial (prima linie - prima coloan);

format Seteaz formatul de afiare a datelor; echo more Permite afiarea liniilor de program n timpul executrii acestora; Funcie pentru controlul numrului de linii afiate pe monitor.

11/20/12

32

Controlul ferestrei de comenzi


Afiarea succesiv a n linii dintr-un program sau matrice de date face apel la funcia more. Se apeleaz cu sintaxa: more(n) Cu tasta ENTER" se trece Ia urmtoarea secven de n linii, iar cu tasta Q se prsete modul de afiare cu numr de linii impus. Funcia de tergere a ecranului, clc, se apeleaz cu sintaxa: clc iar funcia home poziioneaz cursorul n locaia corespunztoare primei linii i primei coloane, apelndu-se cu sintaxa: home

11/20/12

33

Formate de afiare a numerelor


MATLAB-ul pune la dispoziia utilizatorului dou moduri de control al afirii datelor pe ecran: numrul de cifre i spaierea dintre ele. Funcia format stabilete formatul extern de afiare al numerelor pe ecran. Aceast funcie afecteaz doar modul de afiare a numerelor i nu precizia calculului sau forma de salvare a datelor (MATLAB-ul execut calculele n dubl precizie). La lansare, MATLAB afieaz numerele n formatul scurt (cu 5 cifre).

Trecerea de Ia un format la altul se poate face fie selectnd succesiv : Option/NumericFormat/opiune, fie prin comanda: OPIUNE REZULTAT format opiune 5 cifre SHORT unde opiune" poate fi una dintre variantele: [Short/Long/Short e/Long e/ LONG 15 cifre Hex/Bank/Plus/Rational]. SHORT E 5 cifre +exp.
LONG E 15 cifre + exp. hexazecimal plus blanc minus dou zecimale exprimare raional

EXEMPLU 1.3333 1.33333333333333 1.3333E+000 1.3333333333333E+000 3FF55555555555555 +124.23 102/53 34

Formatele de afiare sunt:

HEX PLUS BANK RAT

11/20/12

Formate de afiare a numerelor


Dac toate elementele unei matrice sunt numere ntregi, matricea este afiat ntr-un format fr zecimale. Atunci cnd cel puin unul dintre elementele matricei nu este numr ntreg, formatul de afiare respect regulile prezentate mai sus, n funcie de opiunea selectat.

Pentru formate short i long, dac cel puin un element al matricei este mai mare dect 1000 sau mai mic dect 0.001, afiarea acesteia se face cu un factor de scal comun pentru toate elementele.

Comanda format compact" suprim liniile libere i afieaz rezultatele ntr-un format mai compact, iar format loose" afieaz rezultatele ntr-un mod mai degajat (cu linii libere).

11/20/12

35

Controlul execuiei unui program


Funcia echo afieaz liniile de program n timpul execuiei acestora. n mod normal comenzile din fiierele-M nu sunt afiate n timpul execuiei. Comanda de ecou poate fi folosit pentru depanare sau pentru demonstraii.

Funcii de control a variabilelor din memorie


disp clear pack size length Afieaz o matrice sau un text terge variabile i funcii Compacteaz datele din memorie Returneaz dimensiunea unei matrice Returneaz lungimea unui vector

11/20/12

36

Afiarea unui text


Funcia disp afieaz o matrice fr s tipreasc numele acesteia.

Se apeleaz cu sintaxa:
disp(X) unde X este un ir text sau o matrice. De exemplu, afiarea unei matrice cu etichete de coloane presupune secvena MATLAB: disp('Nr. Varl Var2') for i=1:4 y=[i, 5*i^2, 2^i]; disp (y) end

Se afieaz rezultatul:

Nr. 1 2 3 4

Var1 5 20 45 80

Var2 2 4 8 16
37

11/20/12

tergerea variabilelor
Funcia clear terge variabilele din spaiul de lucru al aplicaiei. Cu aceast funcie se poate terge: - o variabil : clear X - mai multe : clear X Y Z - sau toate : clear

Compactarea memoriei
n timpul utilizrii MATLAB-ului se creeaz i se terg n permanen variabile din memoria calculatorului. Deoarece zona de memorie continu, neocupat se reduce, se poate ajunge la imposibilitatea ca o variabil mare s poat fi stocat, dei este mai mic dect memoria nefolosit. n aceast situaie calculatorul va afia mesajul Out of memory". Compactarea spaiului de memorie rmas discontinuu se face cu funcia pack. Se apeleaz cu sintaxa: pack
11/20/12 38

Dimensiunea variabilelor
Pentru determinarea dimensiunifor variabilelor n MATLAB exist dou funcii: size i length. Funcia size se apeleaz cu sintaxa: [m, n]= size(X) i returneaz un vector linie cu dou componente [m,n]: - numrul de linii m i - numrul de coloane n, ale matricei X. Funcia length se apeleaz cu sintaxa: length(X) i returneaz dimensiunea maxim a matricei sau lungimea vectorului. Este echivalent cu instruciunea: max(size(X)).

11/20/12

39

Dimensiunea variabilelor
Exemplu Pentru matricea: X = [ 1 2 4; 5 7 9] instruciunile: b = size(X) [m,n] = size(X) d = length(X) au ca rezultat: b[2 3] 2 linii i 3 coloane m = 2 2 linii n = 3 3 coloane d = 3 dimensiunea maxim 3

11/20/12

40

Variabile speciale i constante n MATLAB


Variabilele speciale au un neles deosebit n MATLAB. Acestea nu pot fi declarate i sunt accesibile global n orice fiier M.

Variabilele si constantele speciale sunt:


ans eps - variabil creat automat, n care este returnat rezultatul unui calcul, atunci cnd expresia nu a avut atribuit un nume. - variabil permanent n care este memorat eroarea relativ pentru calculele efectuate n virgul mobil. Valoarea implicit este eps = 2.2204e-016, dar poate fi redefinit Ia orice alt valoare. - variabil permanent care are asignat valoarea 3.14159265358.

pi

i= 1 - variabil folosit pentru introducerea numerelor complexe, ca n exemplul: z=2+3*i. Aceasta poate fi redescris i folosit ca o variabil oarecare. De exemplu, dac se definete s=sqrt(-1), variabila s poate fi folosit la introducerea numerelor complexe ca i variabilele i sau j, ca n exemplul: z=2+3*s.
11/20/12 41

Variabile speciale i constante n MATLAB


j= 1 inf - este o alternativ Ia utilizarea unitii imaginare i; - variabil folosit pentru reprezentarea lui plus infinit n aritmetica IEEE, rezultat al mpririi 1.0/0.0; - variabil folosit pentru reprezentarea lui Not-a-Number (NaN), n aritmetica IEEE, rezultat al mpririi nedefinite 0.0/0.0; - variabil permanent pentru testarea numrului argumentelor de intrare ce trebuie introduse pentru apelarea unei funcii; - variabil permanent pentru testarea numrului argumentelor de ieire ale unei funcii; - returneaz numrul de operaii n virgul mobil efectuate de calculator. Adunrile i scderile sunt contorizate fiecare cte o operaie, dac se efectueaz ntre numere reale, i dou operaii dac se efectueaz ntre valori complexe. nmulirile i mpririle sunt fiecare o operaie dac rezultatul este real i 6 operaii dac rezultatul este complex. Aducerea la zero a contorului se realizeaz cu instruciunea flops(0);

NaN
nargin nargout flops

11/20/12

42

Variabile speciale i constante n MATLAB


computer - variabil folosit pentru obinerea informaiilor referitoare la tipul calculatorului i numrul maxim de elemente pe care le poate gestiona versiunea respectiv de MATLAB. Cu instruciunea: [calculator, elemente] = computer se obine: Calculator = PCWIN elemente = 268435455 realmax realmin - reprezint cea mai mare valoare pozitiv n virgul mobil care poate fi folosit n calcule, respectiv 1.7977e+308; - reprezint cea mai mic valoare pozitiv n virgul mobil care poate fi folosit n calcule, respectiv 2.2251e-308;

isieee

- funcie care returneaz 1 dac calculatorul lucreaz cu arimetica IEEE i 0 n caz contrar;
- funcii pentru determinarea versiunii MATLAB i a toolbox-urilor instalate pe calculator.
43

version,ver
11/20/12

Importul fiierelor de date


Funciile load i save sunt comenzi MATLAB de ncrcare i salvare a fiierelor de pe (pe) discul curent: load save ncarc variabilele dintr-un fisier de date de pe disc; Salveaz variabilele intr-un fisier de date pe disc.

ncrcarea unui fiier de date se face cu funcia load. Se apeleaz cu sintaxa: load nume_fiier -format_date unde nume_fiier" este numele fiierului care se doreste ncarcat, iar format_date" este formatul datelor (ASCII sau BINAR) din acel fiier.

11/20/12

44

Importul fiierelor de date


Funcia load se utilizeaz pentru: ncrcarea datelor din fiierul matlab.mat: load ncrcarea datelor din fiiere n format binar, cu extensie *.mat: load nume_fiier ncrcarea datelor din fiiere n format binar, cu extensie: load nume_fiier.extensie mat ncrcarea datelor din fiiere n format ASCII, fr extensie: load nume_fiier ascii ncrcarea datelor din fiiere n format ASCII, cu extensie: load nume_fiier.extensie -ascii

11/20/12

45

Importul fiierelor de date


n toate cazurile, datele ncrcate trebuie s fie tablouri complete. Dup ncrcare, datele se regsesc n memoria calculatorului cu numele pe care l-a avut fiierul de date (fr extensie), indiferent de forma n care fuseser stocate anterior. De exemplu, pentru ncrcarea fiierului de date n format ASCII cu numele temp.dat se foloseste instruciunea: load temp.dat Dac fiierut nu are extensie, se foloseste instruciunea: load temp -ascii n ambele cazuri, datele coninute de fiierul ncrcat se regsesc n memorie cu numele temp.

11/20/12

46

Exportul fiierelor de date

Salvarea variabilelor din spaiul de lucru folosete funcia save. Se apeleaz cu sintaxa: save nume_fiier nume_variabile -format_date

unde nume_fiier" este numele fiierului n care se salveaz variabilele nume_variabile", n formatul format_date" (ASCII sau BINAR).

11/20/12

47

Exportul fiierelor de date


Functia save se utilizeaz pentru: salvarea n format binar a tuturor variabilelor din spaiul de lucru, n fiierul matlab.mat: save salvarea n format binar a tuturor variabilelor din spaiul de lucru, n fiierul nume_fiier.mat: save nume_fiier salvarea n format binar a variabilelor A B C din spaiul de lucru, n fiierul nume_fiier.mat: save nume_fiier A B C salvarea in format ASCII (cu 8 digii) a variabilelor A B C din spaiul de lucru, n fiierul nume_fiier.ext: save nume_fiier.ext A B C -ascii salvarea n format ASCII (cu 16 digii) a variabilelor A B C din spaiul de lucru, n fiierul nume_fiier.ext: save nume_fiier.ext A B C -ascii -double salvarea n format ASCII (cu 16 digii) a variabilelor A B C din spaiul de lucru, cu separarea datelor prin TAB-uri, n fiierul nume_fiier.ext: save nume_fiier.ext A B C -ascii -double -tabs

11/20/12

48