SlideShare a Scribd company logo
1 of 11
Download to read offline
2. PREZENTARE GENERALĂ MATLAB


       MATLAB (MATrix LABoratory) este un pachet de programe de înaltă
performan ă dedicat calculului numeric şi reprezentărilor grafice în domeniul
ştiin ei şi al ingineriei, care integrează: analiza numerică, calculul matriceal,
procesarea semnalului şi reprezentările grafice într-un mediu uşor de învă at şi
folosit. Elementul de bază cu care operează MATLAB este matricea (matrix), cu
care se pot rezolva problemele date, fără a fi necesară cunoaşterea unui limbaj de
programare. Cea mai importantă caracteristică a MATLAB este uşurin a în operare
şi dezvoltarea unor aplica ii specifice domeniului în care lucrează utilizatorul.
       Structural, MATLAB este realizat sub forma unui nucleu de bază, cu
interpretor propriu, în jurul căruia sunt construite aplica ii specifice diferitelor
domenii, numite TOOLBOX (colec ii extinse de func ii MATLAB, destinate
rezolvării unor probleme din domenii variate).

     2.1. Ferestre de lucru
    MATLAB lucrează cu două tipuri de ferestre: o fereastră de comenzi
(Command Window) şi o fereastră pentru reprezentări grafice.

      Fereastra de comenzi
      În momentul declanşării programului, apare fereastra de comenzi. Meniul
principal din bara superioară a acesteia este accesibil prin selec ia directă cu
mouse-ul a comenzii dorite sau prin tastarea simultană a tastei Alt şi a literei
subliniate a comenzii dorite.
      Fiecare comandă din meniul principal furnizează un meniu specific, în cadrul
acestuia selec ia putându-se face, fie cu mouse-ul, fie prin tastarea literei marcate
special, în fiecare subcomandă a respectivului meniu.
      O parte din comenzile prezente în meniul principal sunt aliniate sub formă de
butoane pe bara imediat inferioară (Bara cu butoane).
      Comenzile esen iale şi func iile matematice se introduc în dreptul cursorului
MATLAB; tot de aici se pot declanşa ini ierea toolbox-urilor (colec ii extinse de
func ii MATLAB, destinate rezolvării unor probleme specifice anumitor domenii).
      În momentul în care capacitatea ecranului este depăşită din punct de vedere
orizontal sau vertical, este posibilă deplasarea cu ajutorul butoanelor de derulare
orizontală şi verticală.
      În figura următoare sunt prezentate componentele principale ale ferestrei de
comenzi descrise anterior:
Prezentare generală Matlab                                                       27




      Gestionarea fişierelor
      Selectând comanda File, din meniul principal, se ob ine submeniul de
gestionare a fişierelor, cu următoarea listă de comenzi:
          New – provoacă descrierea unui alt sub-submeniu cu op iunile: M-File
          (deschide o ferestră de editare a unui fişier), Figure (deschide o fereastră
          grafică nouă), Model (deschide fereastra corespunzătoare modelării în
          Simulink);
          Open – deschide o fereastră de dialog, pentru a selecta un fişier, care va
          deveni un fişier de lucru;
          Open selection – analizează fişierele pentru selectare şi deschide pe cel
          selectat;
          Run Script – rulează comenzile componente ale unui scenariu;
          Load Workspace – încarcă fişierul specificat, în care au fost salvate anterior
          datele din spa iul de lucru;
          Save Workspace As – deschide o fereastră de dialog, pentru a salva datele
          din spa iul de lucru într-un fişier, al cărui număr trebuie precizat;
          Show Workspace – prezintă con inutul spa iului de lucru;
          Show Graphics Property Editor – editorul de proprietă i grafice ;
          Show GUI Layout Tool – modificarea interfe ei;
          Set Path – se stabilesc căile către directoarele în care se găsesc fişiere sau
28           SISTEME DE PROGRAMARE PENTRU MODELARE ŞI SIMULARE

         aplica ii MATLAB;
         Preferences – stabilirea proprietă ilor ferestrei de comenzi;
         Print Setup – configurarea caracteristicilor imprimantei şi paginii;
         Print – permite tipărirea documentului;
         Exit MATLAB – părăsirea aplica iei.

      Func ia Edit
     Aproape toate comenzilor prezente în submeniul Edit sunt comune cu cele
din meniurile similare ale majorită ii editoarelor de texte sub Windows: Undo,
Cut, Copy, Paste, Clear, Select All.
     Ştergerea sesiunii de lucru se realizează cu comanda Clear Session.

      Selectarea ferestrelor
      Trecerea dintr-o fereastră grafică sau de comenzi, într-o altă fereastră, se
realizează prin selectarea comenzii Windows din meniul principal, urmată de
selectarea uneia dintre ferestrele grafice deschise sau acelei de comenzi.

      Editarea programelor
     La editarea oricărui program, utilizatorul poate apela help-ul şi astfel să
revadă parametrii de intrare şi ieşire ai func iei respective.
     În plus, sunt furnizate informa ii referitoare la func ionarea MATLAB,
demonstra ii şi exemple.

      Fereastra de reprezentări grafice în Matlab
     Fereastra grafică este o formă elevată de reprezentare a graficelor; pot exista
mai multe ferestre grafice deschise în acelaşi timp, dar o singură fereastră de
comenzi.
     În fereastra grafică pot fi reprezentate func ii 2D sau 3D, imagini color,
anima ie etc.

      Gestionarea ferestrelor grafice
      Selectarea comenzii File-New-Figure determină trecerea într-o fereastră
grafică. Dacă se selectează comanda Window (din meniul principal), urmată de
op iunea Figure, se trece în fereastra grafică ce con ine o reprezentare anterioară.

      Editarea graficelor
    Selectând comanda Edit din meniul principal al ferestrei grafice, apare un
submneniu, asemănător cu cel al ferestrei de comandă.
Prezentare generală Matlab                                                         29

      2.2. Func ii de interes general
      Func ii pentru intrarea şi ieşirea din Matlab
      Func iile pentru lansarea unei sesiuni de lucru în MATLAB, părăsirea
acesteia, precum şi asigurarea unor informa ii necesare unei func ionări corecte
sunt:
          startup – fişier M, executat la activarea MATLAB;
          matlabrc – fişierul principal pentru lansarea MATLAB (con ine toate căile
          de acces la fişierele de lucru, precum şi setările parametrilor de lucru);
          exit, quit – ieşire din MATLAB.

      Func ii pentru control general
      Pentru controlul general al mediului de programare MATLAB se utilizează
func iile:
           help – furnizează informa ii despre func ionarea MATLAB;
           what – listează fişierele *.M, *.MAT şi *.MEX din directorul curent;
           type – listează fişierul M men ionat;
           lookfor – întoarce numele fişierelor care au în prima linie a Help (linia H1)
           cuvintele precizate ca argument;
           which – întoarce calea spre un fişier sau o func ie MATLAB;
           path – întoarce căile utilizate de MATLAB pentru a găsi fişierele apelate;
           who – listează variabile curente din memorie;
           whos – listează variabilele curente, dimensiunile lor, precum şi tipul acestora
           (reale sau complexe).

      Func ii pentru controlul directoarelor şi fişierelor
       Principalele func ii Matlab cu ajutorul cărora se controlează directoarele şi
fişierele sunt:
           cd – schimbă directorul curent;
           dir – listează con inutul directorului curent;
           delete – şterge fişierul precizat de pe disc;
           ! – execută comenzi DOS (precedate de !), fără părăsirea MATLAB;
           diary – salvează sesiunea de lucru (fără partea grafică) într-un fişier text
           (ASCII).

      Func ii de control ale mărimilor de timp
      Controlul mărimilor de timp specifice se realizează cu func iile:
         clock – citeşte timpul din BIOS-ul computerului;
         cputime – determină timpul de calcul al “CPU”;
         date – citeşte data din BIOS-ul computerului;
30            SISTEME DE PROGRAMARE PENTRU MODELARE ŞI SIMULARE

          etime –cronometrează intervalul de timp între două evenimente;
          tic, toc – porneşte, respectiv opreşte un cronometru.

      Func ii asociate ferestrei de comenzi
      Fereastra de comenzi se poate controla prin următoarele func ii:
         clc – şterge fereastra de comenzi;
         home – mută cursorul în pozi ia ini ială (prima linie-prima comandă);
         format op iune – setează formatul de afişare a datelor, în func ie de op iunea
         specificată (short – 5 cifre, long – 15 cifre, short e – 5 cifre + exp, long e –
         15 cifre + exp, hex – hexazecimal, plus – plus blanc minus, blank – cu 2
         zecimale, rat – în numere ra ionale);
         echo – permite afişarea liniilor de program, în timpul executării acestora;
         more – func ie pentru controlul numărului de linie afişat de monitor.

      Func ii de control ale variabilelor din memorie
    În timpul lucrului, o serie de mărimi sunt re inute în spa iul de lucru sau în
memoria calculatorului. Acestea pot fi controlate cu următoarele func ii:
        disp (X)– afişează o matrice sau un text, fără a tipări numele acesteea, unde X
        este un şir text sau o matrice;
        Exemplificare: Următoarea secven ă de MATLAB duce la afişarea unei
        matrice cu etichete de coloane:
                                                  Nr.       Var1 Var2
          disp (‘Nr. Var1 Var2)                      1         5        2
          for i= 1:4                       ⇒         2         20       4
                 y=[i,5*i^2, 2^i];                   3         45       8
          end.                                       4         80      10
          clear – şterge toate variabile din spa iul de lucru (clear X Y Z şterge doar
          variabilele men ionate);
          pack – compactează datele din memorie;
          size – întoarce dimensiunea unei matrice;
          length – returnează lungimea unui vector.
          Exemplificare: Pentru matricea X = [1 2 4; 5 7 9], instruc iunile:
          b = size(X)                       b = [2 3]         - 1 linie şi 4 coloane
          [m,n] = size (X)         ⇒        m=2               - 1 linie
          d = length (X)                   n=3               - 4 coloane
                                           d=3               - dimensiunea maximă 4
Prezentare generală Matlab                                                         31

      Variabile speciale şi constante Matlab
      Variabilele speciale şi constantele au o semnifica ie deosebită în MATLAB.
Acestea nu pot fi declarate şi sunt accesibile global, în orice fişier-M. Variabilele
speciale nu sunt introduse în mod obişnuit, fiind accesibile global în orice fişier-M.
      Variabilele speciale şi constantele introduse în mod uzual în MATLAB sunt:
          ans – variabilă creată automat, reprezentând rezultatul unui calcul pentru care
          nu s-a alocat un nume;
          eps – variabilă permanentă, în care este memorată eroarea relativă pentru
          calculele efectuate în virgulă mobilă (2,2204e-016);
          pi – variabilă permanentă, care are alocată valoarea 3,14159265358;
          i = − 1 – variabilă folosită pentru introducerea numerelor complexe (z =x + iy);
          j= − 1 – alternativă a unită ii imaginare, i;
          inf – variabilă folosită pentru reprezentarea lui plus infinit în standardul
          IEEE, rezultat al împăr irii 1,0/0,0;
          NaN – variabilă folosită pentru reprezentarea lui Not-a-Number (NaN), în
          aritmetica IEEE, rezultat al împăr irii nedefinite 0,0/0,0;
          nargin – variabilă permanentă, pentru testarea numărului argumentelor de
          intrare ce trebuie introduse pentru apelarea unei func ii;
          nargout – variabilă permanentă, pentru testarea numărului argumentelor de
          ieşire ale unei func ii;
          flops – întoarce numărul de opera ii, în virgulă mobilă, efectuate de
          calculator;
          computer – variabilă folosită pentru ob inerea informa iilor referitoare la
          tipul calculatorului şi numărul maxim de elemente pe care le poate gestiona
          versiunea de MATLAB;
          realmax – reprezintă cea mai mare valoare pozitivă, în virgulă mobilă, care
          poate fi folosită în calcule (1,7977e+-308);
          realmin – reprezintă cea mai mică valoare pozitivă, în virgulă mobilă, care
          poate fi folosită în calcule (2,2251e+-308);
          isieee – func ie care returnează 1, dacă computerul lucrează în standard IEEE
          şi 0, în caz contrar;
          version, ver –func ii cu care se determină versiunea MATLAB sau a
          toolbox-urilor.

      Importul şi exportul fişierelor de date
     Pentru importul şi exportul fişierelor de date sunt următoarele func ii mai
importante:
         load – încarcă varibilele dintr-un fişier de pe disc; sintaxa este load
         nume_fişier-format_date (ASCII sau BINAR);
         save – salvează variabilele de pe disc într-un fişier de date; sintaxa este save
         nume_fişier-format_date (ASCII sau BINAR).
32           SISTEME DE PROGRAMARE PENTRU MODELARE ŞI SIMULARE

     2.3. Obiecte Matlab
      Matrice, vectori şi scalari
      MATLAB-ul utilizează numai un singur tip de obiecte, matrice numerice
rectangulare, cu elemente reale sau complexe. Astfel, scalarii sunt asimila i
matricelor 1x1 (1linie x 1coloană), iar vectorii sunt asimila i matricelor 1xn sau
nx1.
       Cea mai simplă metodă de definire a matricelor mici, constă în utilizarea unei
liste explicite, respectând următoarele reguli:
           - elementele unei linii trebuie separate prin blank-uri sau virgule;
           - liniile se separă prin “;”;
           - elementele matricei sunt cuprinse între “[]”.
     Astfel secven a A=[1 2; 3 4] întoarce rezultatul:
           A=
                  1     2
                  3      4
      Pentru matricele mari, la care datele de intrate nu încap pe o singură linie, se
poate înlocui “;” cu “Enter”, ca în exemplul următor:
           A =[         1         2
                        3         4]
     Un alt mod de definire constă în apelarea unui fişier de tip ASCII, cu extensia
.m, deja creat. Acest fişier trebuie să fie organizat ca o matrice rectangulară
completă:
                                  1      2
                                  3      4
      Elementele matricelor pot fi numere reale sau complexe, precum şi orice
expresie MATLAB. De exemplu, din secven a : x=[-1.3 sqrt(3) (1+2+3)*4/5],
rezultă: x =[ -1.3000 1.7321 4.8000].
      Elementul unei matrice x, aflat la intersec ia dintre linia i şi coloana j este
identificat cu nota ia x(i,j). Astfel: a = x(2) ⇒ a = 1.7321.

     Fie A1 şi A2 cele două matrice utilizate. Cu secven a următoare:
               A1 = [1 2; 3 4]                     A=
                A2 = [5 6; 7 8]          ⇒               1   2
                A = [A1; A2]                             3   4
                                                         5   6
Prezentare generală Matlab                                                      33

      Declara ii şi variabile
      Instruc iunile în MATLAB apar sub forma: variabilă = expresie. Expresiile
sunt compuse din operatori sau alte caractere speciale, din func ii şi nume de
variabile. Dacă numele variabilei şi semnul egal sunt omise, programul creează
automat o variabilă cu numele “ans”, ca în exemplul: 3/4 întoarce, ans = 0.7500.
      Orice instruc iune este, în mod normal, terminată cu “Enter”. Dacă ultimul
caracter al acesteia este “;” executată, tipărirea nu este executată. Astfel, secven a:
                A= [1 2 3; 4 5 6; 7 8 9] ;
introduce matricea A, dar nu o afişează.
      Dacă expresia este mai lungă şi nu încape pe o linie, se utilizează semnul
“…”, urmat de “Enter”, precizându-se astfel că instruc iunea continuă pe
următoarea linie. Astfel, instruc iunea:
               S=1+2+3+…
                   4+5+6;
evaluează suma celor şase numere şi o atribuie variabilei S. Spa iile dintre semnele
“=”,“+”, şi “-” şi numere sunt op ionale.
      Numele de variabile şi func ii au ca prim caracter o literă, urmată de litere,
cifre sau “_”. MATLAB re ine doar primele 19 caractere din numele variabilei şi
face distinc ie între litere mari şi mici, deoarece func ia caesesen este activată
automat la activarea programului.

      Numere şi expresii aritmetice
       MATLAB utilizează pentru reprezentarea numerelor nota ia zecimală
americană, cu punct zecimal.
       Calculatoarele care utilizează aritmetica în virgulă mobilă IEEE, au precizia
relativă a numerelor “eps”, aproximată cu 16 cifre semnificative. Limitele
numerelor folosite în MATLAB sunt: 10-308 şi 10308.
       Operatorii aritmetici utiliza i sunt:
          +      adunarea;
          -      scăderea;
          *      înmul irea;
          /      împăr irea la dreapta;
                împăr irea la stânga (1/4 = 41);
          ^      ridicarea la putere.

      Structura programelor Matlab
     Fişierele-M con in instruc iuni MATLAB şi au extensia .m şi constau într-o
succesiune de instruc iuni MATLAB, cu posibilitatea apelării altor fişiere-M,
precum şi a apelării recursive.
     Un program MATLAB poate fi scris sub forma fişierelor “script” sau
“function”. Aceste tipuri de fişiere (.m) permit crearea unor func ii noi, care le pot
34             SISTEME DE PROGRAMARE PENTRU MODELARE ŞI SIMULARE

completa pe cele deja existente. Prin această facilitate, MATLAB-ul poate fi extins
la aplica ii specifice utilizatorului, care are posibilitatea să scrie noi proceduri.
            Fişierele script
       Este un fişier extern care con ine o secven ă de comenzi MATLAB, executată
în momentul apelării numelui fişierului. Fişierele script sunt folosite pentru
rezolvarea unor probleme care cer comenzi succesive atât de lungi, încât ar putea
deveni greoaie pentru lucrul în mod interactiv. După execu ia completă a unui
fişier script, variabilele cu care acesta a operat rămân în zona de memorie a
aplica iei.
            Fişierele function
      Dacă prima linie a fişierului-M con ine cuvântul ”function”, fişierul respectiv
este declarat ca fişier func ie (spre deosebire de script în el se poate lucra cu
argumente). Fişierele func ie sunt utilizate pentru extinderea MATLAB, prin
crearea de noi func ii. La terminarea execu iei unei func ii, în memoria
calculatorului rămân doar variabilele de ieşire ale acesteea.
      Forma generală a primei linii a unui fişier func ie este:
          function [param_ieşire]=nume_func ie(param_intrare)
unde:      - function – declară fişierul ca fişier func ie;
           - nume_func ie – numele func iei;
           - param_ieşire – parametrii de ieşire trebuie separa i cu virgulă şi cuprinşi
           între paranteze drepte;
           - param_intrare - parametrii de intrare trebuie separa i cu virgulă şi cuprinşi
           între paranteze rotunde.
        Exemplificare: Un fişier care calculează media aritmetică, numit medie.m:
           function m = medie (x)
           n=length (x);
           m = sum (x)/n;
           y = [‘Media numerelor este: ‘, num2str(m) ];
           disp (y).

        2.4. Instruc iuni şi func ii de control
        Instruc iuni de control logic
        Matlab prezintă următoarele instruc iuni de control logic:
           if - instruc iunile pentru execu ia condi ionată;
           else – instruc iune asociată if;
           elseif - instruc iune asociată if;
           for – instruc iune pentru crearea ciclurilor cu număr specificat de paşi;
           while – instruc iune pentru crearea ciclurilor cu condi ie logică;
Prezentare generală Matlab                                                      35

         break – instruc iune pentru terminarea for ată a unui ciclu;
         return – returnează execu ia la func ia precizată;
         error – instruc iune pentru afişarea unui mesaj de eroare;
         end – instruc iune pentru închiderea ciclurilor “for”, “while” şi “if”.

      Operatori rela ionali şi logici
      În cazul unui algoritm este uneori nevoie de o selec ie a grupului de
instruc iuni a căror execu ie este condi ionată de valoarea de adevăr a unei expresii.
Instruc iunile condi ionale utilizează operatori rela ionali şi logici.
      Operatorii rela ionali compară două matrice, element cu element, returnând o
matrice de aceeaşi dimensiune cu a matricelor care se compară, cu elementele 1,
când rela ia este ADEVĂRATĂ şi 0 când este FALSĂ.


                        Operatori rela ionali           Semnifica ie
                                 <                         mai mic
                                <=                     mai mic sau egal
                                 >                         mai mare
                                >=                     mai mare sau egal
                               ==                           identic
                                -=                           diferit

     Pentru combinarea a două sau mai multe expresii logice se utilizează
operatori logici.

           Operatorii logici           Simbol MATLAB                  Prioritatea
                 NU                           _                            1
                 ŞI                           &                            2
                SAU                           |                            3

      MATAB con ine func ii pentru testarea unor condi ii rela ionale şi logice în
tablouri de date sau matrice.
      Acestea sunt des utilizate, asociate cu instruc iunea “if”:
          exist- verifică dacă variabilele sau func iile argument sunt definite;
          any-testează dacă cel pu in un element al unei matrice verifică o condi ie
          logică;
          find - returnează indicii elementelor diferite de zero;
          isnan - testează dacă elementele unei matrice sunt NaN;
          isinf - testează dacă elemntele unei matrice sunt infinite;
          finite – testează dacă elementele unei matrice sunt finite.
36           SISTEME DE PROGRAMARE PENTRU MODELARE ŞI SIMULARE

      Caractere speciale
      Caracterul „:” sau „colon” este larg utilizat pentru:
        • a genera valori cu pas liniar constant sau cu pas constant dat;
        • a selecta o matrice, rândul sau coloana acesteia;
        • producerea unei liste de argumente.
      Parantezele rotunde, simbolizate prin „( )”, sunt folosite:
        • în calculele aritmetice sau logice, pentru a grupa opera iile şi unde in
           locul tuturor tipurilor de paranteze (rotunde, drepte, acolade);
        • pentru a indica elementul unui vector sau matrice ;
        • pentru a grupa argumentele unei func ii.
      Parantezele drepte, simbolizate prin „[ ]”, sunt utilizate pentru:
        • formarea vectorilor şi matricelor, prin indicarea elementelor acestora;
        • stocarea unei matrice goale;
        • schimbarea unui rând sau coloane dintr-o matrice;
        • concatenarea vectorilor şi a matricelor.
      Caracterul „@” este utilizat pentru a crea o func ie implicită, apelabilă ca şi o
variabilă.
      Punctul, cu simbolul „.” este folosit pentru:
        • scrierea numerelor zecimale;
        • opera ii cu tablouri, pentru a indica că operatorii de înmul ire, de
           ridicare la putere, de împăr ire la dreapta, de împăr ire la stânga, sau de
           transpunere, lucrează element cu element ;
        • în câmpuri de acces, când se lucrează cu structuri.
       Atribuirea unei variabile Var a valorii unei expresii se realizează prin
utilizarea semnului egal, „=”.

More Related Content

Similar to initiere matlab (20)

Programare r 1
Programare r 1Programare r 1
Programare r 1
 
Curs autocad
Curs autocadCurs autocad
Curs autocad
 
Curs autocad
Curs autocadCurs autocad
Curs autocad
 
Manual QM
Manual QMManual QM
Manual QM
 
Cap01
Cap01Cap01
Cap01
 
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc''Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
 
Comenzi fox pro
Comenzi fox proComenzi fox pro
Comenzi fox pro
 
Curs TIC.pdf
Curs TIC.pdfCurs TIC.pdf
Curs TIC.pdf
 
Informatika
InformatikaInformatika
Informatika
 
Lucrarea informatica3
Lucrarea informatica3Lucrarea informatica3
Lucrarea informatica3
 
Proiect a 2b_balan_liliana altfel
Proiect a 2b_balan_liliana altfelProiect a 2b_balan_liliana altfel
Proiect a 2b_balan_liliana altfel
 
baze c++sructura unui program declarare variabilepdf.
baze c++sructura unui program declarare variabilepdf.baze c++sructura unui program declarare variabilepdf.
baze c++sructura unui program declarare variabilepdf.
 
Modulul 4 exel
Modulul 4   exelModulul 4   exel
Modulul 4 exel
 
Reprezentarea algoritmilor ap 21feb2011
Reprezentarea algoritmilor ap 21feb2011Reprezentarea algoritmilor ap 21feb2011
Reprezentarea algoritmilor ap 21feb2011
 
Graduation projects in Crispico
Graduation projects in CrispicoGraduation projects in Crispico
Graduation projects in Crispico
 
2006 intro java_v01
2006 intro java_v012006 intro java_v01
2006 intro java_v01
 
Modul 4. calcul tabelar
Modul 4. calcul tabelarModul 4. calcul tabelar
Modul 4. calcul tabelar
 
Curs05
Curs05Curs05
Curs05
 
M3 word 2007
M3 word 2007M3 word 2007
M3 word 2007
 
Modulul 5 ecdl
Modulul 5 ecdlModulul 5 ecdl
Modulul 5 ecdl
 

initiere matlab

  • 1. 2. PREZENTARE GENERALĂ MATLAB MATLAB (MATrix LABoratory) este un pachet de programe de înaltă performan ă dedicat calculului numeric şi reprezentărilor grafice în domeniul ştiin ei şi al ingineriei, care integrează: analiza numerică, calculul matriceal, procesarea semnalului şi reprezentările grafice într-un mediu uşor de învă at şi folosit. Elementul de bază cu care operează MATLAB este matricea (matrix), cu care se pot rezolva problemele date, fără a fi necesară cunoaşterea unui limbaj de programare. Cea mai importantă caracteristică a MATLAB este uşurin a în operare şi dezvoltarea unor aplica ii specifice domeniului în care lucrează utilizatorul. Structural, MATLAB este realizat sub forma unui nucleu de bază, cu interpretor propriu, în jurul căruia sunt construite aplica ii specifice diferitelor domenii, numite TOOLBOX (colec ii extinse de func ii MATLAB, destinate rezolvării unor probleme din domenii variate). 2.1. Ferestre de lucru MATLAB lucrează cu două tipuri de ferestre: o fereastră de comenzi (Command Window) şi o fereastră pentru reprezentări grafice. Fereastra de comenzi În momentul declanşării programului, apare fereastra de comenzi. Meniul principal din bara superioară a acesteia este accesibil prin selec ia directă cu mouse-ul a comenzii dorite sau prin tastarea simultană a tastei Alt şi a literei subliniate a comenzii dorite. Fiecare comandă din meniul principal furnizează un meniu specific, în cadrul acestuia selec ia putându-se face, fie cu mouse-ul, fie prin tastarea literei marcate special, în fiecare subcomandă a respectivului meniu. O parte din comenzile prezente în meniul principal sunt aliniate sub formă de butoane pe bara imediat inferioară (Bara cu butoane). Comenzile esen iale şi func iile matematice se introduc în dreptul cursorului MATLAB; tot de aici se pot declanşa ini ierea toolbox-urilor (colec ii extinse de func ii MATLAB, destinate rezolvării unor probleme specifice anumitor domenii). În momentul în care capacitatea ecranului este depăşită din punct de vedere orizontal sau vertical, este posibilă deplasarea cu ajutorul butoanelor de derulare orizontală şi verticală. În figura următoare sunt prezentate componentele principale ale ferestrei de comenzi descrise anterior:
  • 2. Prezentare generală Matlab 27 Gestionarea fişierelor Selectând comanda File, din meniul principal, se ob ine submeniul de gestionare a fişierelor, cu următoarea listă de comenzi: New – provoacă descrierea unui alt sub-submeniu cu op iunile: M-File (deschide o ferestră de editare a unui fişier), Figure (deschide o fereastră grafică nouă), Model (deschide fereastra corespunzătoare modelării în Simulink); Open – deschide o fereastră de dialog, pentru a selecta un fişier, care va deveni un fişier de lucru; Open selection – analizează fişierele pentru selectare şi deschide pe cel selectat; Run Script – rulează comenzile componente ale unui scenariu; Load Workspace – încarcă fişierul specificat, în care au fost salvate anterior datele din spa iul de lucru; Save Workspace As – deschide o fereastră de dialog, pentru a salva datele din spa iul de lucru într-un fişier, al cărui număr trebuie precizat; Show Workspace – prezintă con inutul spa iului de lucru; Show Graphics Property Editor – editorul de proprietă i grafice ; Show GUI Layout Tool – modificarea interfe ei; Set Path – se stabilesc căile către directoarele în care se găsesc fişiere sau
  • 3. 28 SISTEME DE PROGRAMARE PENTRU MODELARE ŞI SIMULARE aplica ii MATLAB; Preferences – stabilirea proprietă ilor ferestrei de comenzi; Print Setup – configurarea caracteristicilor imprimantei şi paginii; Print – permite tipărirea documentului; Exit MATLAB – părăsirea aplica iei. Func ia Edit Aproape toate comenzilor prezente în submeniul Edit sunt comune cu cele din meniurile similare ale majorită ii editoarelor de texte sub Windows: Undo, Cut, Copy, Paste, Clear, Select All. Ştergerea sesiunii de lucru se realizează cu comanda Clear Session. Selectarea ferestrelor Trecerea dintr-o fereastră grafică sau de comenzi, într-o altă fereastră, se realizează prin selectarea comenzii Windows din meniul principal, urmată de selectarea uneia dintre ferestrele grafice deschise sau acelei de comenzi. Editarea programelor La editarea oricărui program, utilizatorul poate apela help-ul şi astfel să revadă parametrii de intrare şi ieşire ai func iei respective. În plus, sunt furnizate informa ii referitoare la func ionarea MATLAB, demonstra ii şi exemple. Fereastra de reprezentări grafice în Matlab Fereastra grafică este o formă elevată de reprezentare a graficelor; pot exista mai multe ferestre grafice deschise în acelaşi timp, dar o singură fereastră de comenzi. În fereastra grafică pot fi reprezentate func ii 2D sau 3D, imagini color, anima ie etc. Gestionarea ferestrelor grafice Selectarea comenzii File-New-Figure determină trecerea într-o fereastră grafică. Dacă se selectează comanda Window (din meniul principal), urmată de op iunea Figure, se trece în fereastra grafică ce con ine o reprezentare anterioară. Editarea graficelor Selectând comanda Edit din meniul principal al ferestrei grafice, apare un submneniu, asemănător cu cel al ferestrei de comandă.
  • 4. Prezentare generală Matlab 29 2.2. Func ii de interes general Func ii pentru intrarea şi ieşirea din Matlab Func iile pentru lansarea unei sesiuni de lucru în MATLAB, părăsirea acesteia, precum şi asigurarea unor informa ii necesare unei func ionări corecte sunt: startup – fişier M, executat la activarea MATLAB; matlabrc – fişierul principal pentru lansarea MATLAB (con ine toate căile de acces la fişierele de lucru, precum şi setările parametrilor de lucru); exit, quit – ieşire din MATLAB. Func ii pentru control general Pentru controlul general al mediului de programare MATLAB se utilizează func iile: help – furnizează informa ii despre func ionarea MATLAB; what – listează fişierele *.M, *.MAT şi *.MEX din directorul curent; type – listează fişierul M men ionat; lookfor – întoarce numele fişierelor care au în prima linie a Help (linia H1) cuvintele precizate ca argument; which – întoarce calea spre un fişier sau o func ie MATLAB; path – întoarce căile utilizate de MATLAB pentru a găsi fişierele apelate; who – listează variabile curente din memorie; whos – listează variabilele curente, dimensiunile lor, precum şi tipul acestora (reale sau complexe). Func ii pentru controlul directoarelor şi fişierelor Principalele func ii Matlab cu ajutorul cărora se controlează directoarele şi fişierele sunt: cd – schimbă directorul curent; dir – listează con inutul directorului curent; delete – şterge fişierul precizat de pe disc; ! – execută comenzi DOS (precedate de !), fără părăsirea MATLAB; diary – salvează sesiunea de lucru (fără partea grafică) într-un fişier text (ASCII). Func ii de control ale mărimilor de timp Controlul mărimilor de timp specifice se realizează cu func iile: clock – citeşte timpul din BIOS-ul computerului; cputime – determină timpul de calcul al “CPU”; date – citeşte data din BIOS-ul computerului;
  • 5. 30 SISTEME DE PROGRAMARE PENTRU MODELARE ŞI SIMULARE etime –cronometrează intervalul de timp între două evenimente; tic, toc – porneşte, respectiv opreşte un cronometru. Func ii asociate ferestrei de comenzi Fereastra de comenzi se poate controla prin următoarele func ii: clc – şterge fereastra de comenzi; home – mută cursorul în pozi ia ini ială (prima linie-prima comandă); format op iune – setează formatul de afişare a datelor, în func ie de op iunea specificată (short – 5 cifre, long – 15 cifre, short e – 5 cifre + exp, long e – 15 cifre + exp, hex – hexazecimal, plus – plus blanc minus, blank – cu 2 zecimale, rat – în numere ra ionale); echo – permite afişarea liniilor de program, în timpul executării acestora; more – func ie pentru controlul numărului de linie afişat de monitor. Func ii de control ale variabilelor din memorie În timpul lucrului, o serie de mărimi sunt re inute în spa iul de lucru sau în memoria calculatorului. Acestea pot fi controlate cu următoarele func ii: disp (X)– afişează o matrice sau un text, fără a tipări numele acesteea, unde X este un şir text sau o matrice; Exemplificare: Următoarea secven ă de MATLAB duce la afişarea unei matrice cu etichete de coloane: Nr. Var1 Var2 disp (‘Nr. Var1 Var2) 1 5 2 for i= 1:4 ⇒ 2 20 4 y=[i,5*i^2, 2^i]; 3 45 8 end. 4 80 10 clear – şterge toate variabile din spa iul de lucru (clear X Y Z şterge doar variabilele men ionate); pack – compactează datele din memorie; size – întoarce dimensiunea unei matrice; length – returnează lungimea unui vector. Exemplificare: Pentru matricea X = [1 2 4; 5 7 9], instruc iunile: b = size(X) b = [2 3] - 1 linie şi 4 coloane [m,n] = size (X) ⇒ m=2 - 1 linie d = length (X) n=3 - 4 coloane d=3 - dimensiunea maximă 4
  • 6. Prezentare generală Matlab 31 Variabile speciale şi constante Matlab Variabilele speciale şi constantele au o semnifica ie deosebită în MATLAB. Acestea nu pot fi declarate şi sunt accesibile global, în orice fişier-M. Variabilele speciale nu sunt introduse în mod obişnuit, fiind accesibile global în orice fişier-M. Variabilele speciale şi constantele introduse în mod uzual în MATLAB sunt: ans – variabilă creată automat, reprezentând rezultatul unui calcul pentru care nu s-a alocat un nume; eps – variabilă permanentă, în care este memorată eroarea relativă pentru calculele efectuate în virgulă mobilă (2,2204e-016); pi – variabilă permanentă, care are alocată valoarea 3,14159265358; i = − 1 – variabilă folosită pentru introducerea numerelor complexe (z =x + iy); j= − 1 – alternativă a unită ii imaginare, i; inf – variabilă folosită pentru reprezentarea lui plus infinit în standardul IEEE, rezultat al împăr irii 1,0/0,0; NaN – variabilă folosită pentru reprezentarea lui Not-a-Number (NaN), în aritmetica IEEE, rezultat al împăr irii nedefinite 0,0/0,0; nargin – variabilă permanentă, pentru testarea numărului argumentelor de intrare ce trebuie introduse pentru apelarea unei func ii; nargout – variabilă permanentă, pentru testarea numărului argumentelor de ieşire ale unei func ii; flops – întoarce numărul de opera ii, în virgulă mobilă, efectuate de calculator; computer – variabilă folosită pentru ob inerea informa iilor referitoare la tipul calculatorului şi numărul maxim de elemente pe care le poate gestiona versiunea de MATLAB; realmax – reprezintă cea mai mare valoare pozitivă, în virgulă mobilă, care poate fi folosită în calcule (1,7977e+-308); realmin – reprezintă cea mai mică valoare pozitivă, în virgulă mobilă, care poate fi folosită în calcule (2,2251e+-308); isieee – func ie care returnează 1, dacă computerul lucrează în standard IEEE şi 0, în caz contrar; version, ver –func ii cu care se determină versiunea MATLAB sau a toolbox-urilor. Importul şi exportul fişierelor de date Pentru importul şi exportul fişierelor de date sunt următoarele func ii mai importante: load – încarcă varibilele dintr-un fişier de pe disc; sintaxa este load nume_fişier-format_date (ASCII sau BINAR); save – salvează variabilele de pe disc într-un fişier de date; sintaxa este save nume_fişier-format_date (ASCII sau BINAR).
  • 7. 32 SISTEME DE PROGRAMARE PENTRU MODELARE ŞI SIMULARE 2.3. Obiecte Matlab Matrice, vectori şi scalari MATLAB-ul utilizează numai un singur tip de obiecte, matrice numerice rectangulare, cu elemente reale sau complexe. Astfel, scalarii sunt asimila i matricelor 1x1 (1linie x 1coloană), iar vectorii sunt asimila i matricelor 1xn sau nx1. Cea mai simplă metodă de definire a matricelor mici, constă în utilizarea unei liste explicite, respectând următoarele reguli: - elementele unei linii trebuie separate prin blank-uri sau virgule; - liniile se separă prin “;”; - elementele matricei sunt cuprinse între “[]”. Astfel secven a A=[1 2; 3 4] întoarce rezultatul: A= 1 2 3 4 Pentru matricele mari, la care datele de intrate nu încap pe o singură linie, se poate înlocui “;” cu “Enter”, ca în exemplul următor: A =[ 1 2 3 4] Un alt mod de definire constă în apelarea unui fişier de tip ASCII, cu extensia .m, deja creat. Acest fişier trebuie să fie organizat ca o matrice rectangulară completă: 1 2 3 4 Elementele matricelor pot fi numere reale sau complexe, precum şi orice expresie MATLAB. De exemplu, din secven a : x=[-1.3 sqrt(3) (1+2+3)*4/5], rezultă: x =[ -1.3000 1.7321 4.8000]. Elementul unei matrice x, aflat la intersec ia dintre linia i şi coloana j este identificat cu nota ia x(i,j). Astfel: a = x(2) ⇒ a = 1.7321. Fie A1 şi A2 cele două matrice utilizate. Cu secven a următoare: A1 = [1 2; 3 4] A= A2 = [5 6; 7 8] ⇒ 1 2 A = [A1; A2] 3 4 5 6
  • 8. Prezentare generală Matlab 33 Declara ii şi variabile Instruc iunile în MATLAB apar sub forma: variabilă = expresie. Expresiile sunt compuse din operatori sau alte caractere speciale, din func ii şi nume de variabile. Dacă numele variabilei şi semnul egal sunt omise, programul creează automat o variabilă cu numele “ans”, ca în exemplul: 3/4 întoarce, ans = 0.7500. Orice instruc iune este, în mod normal, terminată cu “Enter”. Dacă ultimul caracter al acesteia este “;” executată, tipărirea nu este executată. Astfel, secven a: A= [1 2 3; 4 5 6; 7 8 9] ; introduce matricea A, dar nu o afişează. Dacă expresia este mai lungă şi nu încape pe o linie, se utilizează semnul “…”, urmat de “Enter”, precizându-se astfel că instruc iunea continuă pe următoarea linie. Astfel, instruc iunea: S=1+2+3+… 4+5+6; evaluează suma celor şase numere şi o atribuie variabilei S. Spa iile dintre semnele “=”,“+”, şi “-” şi numere sunt op ionale. Numele de variabile şi func ii au ca prim caracter o literă, urmată de litere, cifre sau “_”. MATLAB re ine doar primele 19 caractere din numele variabilei şi face distinc ie între litere mari şi mici, deoarece func ia caesesen este activată automat la activarea programului. Numere şi expresii aritmetice MATLAB utilizează pentru reprezentarea numerelor nota ia zecimală americană, cu punct zecimal. Calculatoarele care utilizează aritmetica în virgulă mobilă IEEE, au precizia relativă a numerelor “eps”, aproximată cu 16 cifre semnificative. Limitele numerelor folosite în MATLAB sunt: 10-308 şi 10308. Operatorii aritmetici utiliza i sunt: + adunarea; - scăderea; * înmul irea; / împăr irea la dreapta; împăr irea la stânga (1/4 = 41); ^ ridicarea la putere. Structura programelor Matlab Fişierele-M con in instruc iuni MATLAB şi au extensia .m şi constau într-o succesiune de instruc iuni MATLAB, cu posibilitatea apelării altor fişiere-M, precum şi a apelării recursive. Un program MATLAB poate fi scris sub forma fişierelor “script” sau “function”. Aceste tipuri de fişiere (.m) permit crearea unor func ii noi, care le pot
  • 9. 34 SISTEME DE PROGRAMARE PENTRU MODELARE ŞI SIMULARE completa pe cele deja existente. Prin această facilitate, MATLAB-ul poate fi extins la aplica ii specifice utilizatorului, care are posibilitatea să scrie noi proceduri. Fişierele script Este un fişier extern care con ine o secven ă de comenzi MATLAB, executată în momentul apelării numelui fişierului. Fişierele script sunt folosite pentru rezolvarea unor probleme care cer comenzi succesive atât de lungi, încât ar putea deveni greoaie pentru lucrul în mod interactiv. După execu ia completă a unui fişier script, variabilele cu care acesta a operat rămân în zona de memorie a aplica iei. Fişierele function Dacă prima linie a fişierului-M con ine cuvântul ”function”, fişierul respectiv este declarat ca fişier func ie (spre deosebire de script în el se poate lucra cu argumente). Fişierele func ie sunt utilizate pentru extinderea MATLAB, prin crearea de noi func ii. La terminarea execu iei unei func ii, în memoria calculatorului rămân doar variabilele de ieşire ale acesteea. Forma generală a primei linii a unui fişier func ie este: function [param_ieşire]=nume_func ie(param_intrare) unde: - function – declară fişierul ca fişier func ie; - nume_func ie – numele func iei; - param_ieşire – parametrii de ieşire trebuie separa i cu virgulă şi cuprinşi între paranteze drepte; - param_intrare - parametrii de intrare trebuie separa i cu virgulă şi cuprinşi între paranteze rotunde. Exemplificare: Un fişier care calculează media aritmetică, numit medie.m: function m = medie (x) n=length (x); m = sum (x)/n; y = [‘Media numerelor este: ‘, num2str(m) ]; disp (y). 2.4. Instruc iuni şi func ii de control Instruc iuni de control logic Matlab prezintă următoarele instruc iuni de control logic: if - instruc iunile pentru execu ia condi ionată; else – instruc iune asociată if; elseif - instruc iune asociată if; for – instruc iune pentru crearea ciclurilor cu număr specificat de paşi; while – instruc iune pentru crearea ciclurilor cu condi ie logică;
  • 10. Prezentare generală Matlab 35 break – instruc iune pentru terminarea for ată a unui ciclu; return – returnează execu ia la func ia precizată; error – instruc iune pentru afişarea unui mesaj de eroare; end – instruc iune pentru închiderea ciclurilor “for”, “while” şi “if”. Operatori rela ionali şi logici În cazul unui algoritm este uneori nevoie de o selec ie a grupului de instruc iuni a căror execu ie este condi ionată de valoarea de adevăr a unei expresii. Instruc iunile condi ionale utilizează operatori rela ionali şi logici. Operatorii rela ionali compară două matrice, element cu element, returnând o matrice de aceeaşi dimensiune cu a matricelor care se compară, cu elementele 1, când rela ia este ADEVĂRATĂ şi 0 când este FALSĂ. Operatori rela ionali Semnifica ie < mai mic <= mai mic sau egal > mai mare >= mai mare sau egal == identic -= diferit Pentru combinarea a două sau mai multe expresii logice se utilizează operatori logici. Operatorii logici Simbol MATLAB Prioritatea NU _ 1 ŞI & 2 SAU | 3 MATAB con ine func ii pentru testarea unor condi ii rela ionale şi logice în tablouri de date sau matrice. Acestea sunt des utilizate, asociate cu instruc iunea “if”: exist- verifică dacă variabilele sau func iile argument sunt definite; any-testează dacă cel pu in un element al unei matrice verifică o condi ie logică; find - returnează indicii elementelor diferite de zero; isnan - testează dacă elementele unei matrice sunt NaN; isinf - testează dacă elemntele unei matrice sunt infinite; finite – testează dacă elementele unei matrice sunt finite.
  • 11. 36 SISTEME DE PROGRAMARE PENTRU MODELARE ŞI SIMULARE Caractere speciale Caracterul „:” sau „colon” este larg utilizat pentru: • a genera valori cu pas liniar constant sau cu pas constant dat; • a selecta o matrice, rândul sau coloana acesteia; • producerea unei liste de argumente. Parantezele rotunde, simbolizate prin „( )”, sunt folosite: • în calculele aritmetice sau logice, pentru a grupa opera iile şi unde in locul tuturor tipurilor de paranteze (rotunde, drepte, acolade); • pentru a indica elementul unui vector sau matrice ; • pentru a grupa argumentele unei func ii. Parantezele drepte, simbolizate prin „[ ]”, sunt utilizate pentru: • formarea vectorilor şi matricelor, prin indicarea elementelor acestora; • stocarea unei matrice goale; • schimbarea unui rând sau coloane dintr-o matrice; • concatenarea vectorilor şi a matricelor. Caracterul „@” este utilizat pentru a crea o func ie implicită, apelabilă ca şi o variabilă. Punctul, cu simbolul „.” este folosit pentru: • scrierea numerelor zecimale; • opera ii cu tablouri, pentru a indica că operatorii de înmul ire, de ridicare la putere, de împăr ire la dreapta, de împăr ire la stânga, sau de transpunere, lucrează element cu element ; • în câmpuri de acces, când se lucrează cu structuri. Atribuirea unei variabile Var a valorii unei expresii se realizează prin utilizarea semnului egal, „=”.