01 Vezba matlab.pdf

21
Visoka škola elektrotehnike i računarstva strukovnih studija PRIMERI I ZADACI IZ PREDMETA DIGITALNA OBRADA SIGNALA Vežba br. 1

Transcript of 01 Vezba matlab.pdf

  • Visoka kola elektrotehnike i raunarstva strukovnih studija

    PRIMERI I ZADACI IZ PREDMETA

    DIGITALNA OBRADA SIGNALA

    Veba br. 1

  • Veba br 1. Uvod u MATLAB

    2

    UVOD U MATLAB

    Matlab je programski paket namenjen za tehnika izraunavanja i to pre svega za:

    Realizaciju matematikih funkcija i raunanje

    Razvoj algoritama

    Modelovanje i simulaciju

    Grafiko prikazivanje rezultata.

    Matlab okruenje

    Matlab se startuje dvostrukim klikom na ikonu ili standardnim putem preko Start menija Start/All Programs/Matlab. Startovanjem Matlab programa, pokree se radno okruenje.

    Slika 1. Radno okruenje

    Radno okruenje se sastoji iz nekoliko celina. Izgled radnog okruenja korisnik moe menjati u zavisnosti od potreba.

  • Veba br 1. Uvod u MATLAB

    3

    Najee najvei deo zauzima Komandni prozor, u koji korisnik moe unositi pojedinane naredbe za izvravanje. Ukoliko se u Komandnom prozoru pojavljuje znak

    >>

    Matlab je spreman za prihvatanje komandi. Nakon unoenja jedne komande, da bi ona bila prihvaena, potrebno je pritisnuti taster . Uneta naredba se trenutno izvrava, i dobija se prikaz rezultata njenog izvravanja ili se ispisuje greka ukoliko je naredba nepravilno uneta.

    Komentari u Matlab-u poinju sa %, sve nakon tog znaka se ignorie prilikom izvravanja

    programa.

    Primer 1: >> 1+ 1/5 2 * (0.8 + 7/9) % sada treba pritisnuti taster

    ans = % rezultat izraza je automatski dodeljen promenljivoj ans

    -1.9556

    Dobijena je vrednost zapisanog izraza, i ta vrednost je smetena u rezervisanu promenljivu ans, koju automatski dodeljuje Matlab ukoliko se ne navede neka odreena promenljiva za skladitenje rezultata.

    Primer 2: >> a = 1+ 1/5 2 * (0.8 + 7/9) % vrednost izraza je dodeljen promenljivoj a

    a =

    -1.9556

    >> a + 1 % sabiranje

    ans =

    -0.9556

    U ovom sluaju, rezultat je smeten u promenljivu a, koju je definisao sam korisnik i dodelio joj vrednost zapisanog izraza. Promenljive kojima je korisnik dodelio mumeriku vrednost, mogu se koristiti u matematikim izrazima.

    Primer 3: >> a = 34 - 6; % ukoliko se napie ; na kraju naredbe, rezultat

    >> b = 2; % izraza se ne ispisuje na ekranu

    >> c = a + b;

    >> c = a * b

    c =

    56

  • Veba br 1. Uvod u MATLAB

    4

    Znaaj znaka taka-zarez (;) na kraju naredbe je u ispisivanju rezultata.

    Primer 4: >> 1 + 1/5 - ((0.8 + 7/9) % leva zagrada je napisana dva puta,

    % javlja se greka

    ??? 1 + 1/5 - ((0.8 + 7/9)

    |

    Error: Expression or statement is incorrectpossibly

    unbalanced (, {, or [.

    Jednom uneta naredba se ne moe modifikovati vraanjem kursora u prethodni red, ve se u sluaju greke mora ponovo uneti i izvriti. Moe se koristiti taster sa strelicom , koja izlistava redom sve prethodno unete naredbe, i tako olakava njihovu modifikaciju.

    Brisanje sadraja komandnog prozora postie se komandom:

    >> clc % i treba stisnuti taster

    Brisanje svih promenljivih, odnosno sadraja radnog prostora, postie se komandom:

    >> clear all % i treba stisnuti taster

    Definisanje promenljivih

    Matlab ne zahteva od korisnika da unese tip ili dimenzije nove promenljive. Kada Matlab naie na novo ime promenljive, on automatski kreira promenljivu i dodeli joj odgovarajui memorijski prostor. Ako promenljiva ve postoji, Matlab menja njen sadraj i ako je potrebno, dodeljuje joj novi memorijski prostor.

    Prilikom definisanja imena promenljive treba imati u vidu:

    naziv moe da sadri slova (a-z), cifre (0-9), i/ili donju crtu (_)

    naziv mora poeti slovom

    Matlab je case sensitive, tj. razlikuje mala i velika slova (A i a nisu ista varijabla!)

    Primeri dobro definisanih promenljivih: rezultat, brzina1, x1, X1, ukupna_brzina

    Primeri pogreno definisanih promenljivih: 1brzina, ukupna-brzina, _promenljiva, x?

    Kod:

    >> broj_studenata = 25

  • Veba br 1. Uvod u MATLAB

    5

    kreira 1x1 matricu sa imenom broj_studenata i dodeljuje joj vrednost 25 u taj jedini element matrice. Da bi se videla vrednost neke varijable, treba jednostavno otkucati njeno ime i pritisnuti taster .

    Neke naredbe za rad sa promenljivama

    >> who

    Ispisuje spisak promenljivih koje se trenutno nalaze u memoriji.

    >> whos

    Ispisuje spisak promenljivih koje se trenutno nalaze u memoriji, njihovu veliinu , ukupno

    zauzetu memoriju i tip.

    >> save

    Snima sve varijable iz radne memorije na disk u binarnom formatu u fajl pod imenom

    matlab.mat. Podaci naknadno mogu biti uitani naredbom load.

    >> save filename

    Snima sve promenljive iz radne memorije na disk u binarnom formatu u fajl pod proizvoljnim

    imenom filename.mat umesto u podrazumevani fajl matlab.mat.

    >> save filename variables

    Snima samo varijable navedene nakon rei filename.

    Primer 5: >> a = 2; % definisanje promenljive a

    >> b = 3; % definisanje promenljive b

    >> whos a % naredba koja ispisuje detelje o promenljivoj a

    Name Size Bytes Class Attributes

    a 1x1 8 double

    >> who % naredba za ispis svih promenljivih koje se nalaze u memoriji

    Your variables are:

    a b

    Rad sa matricama

    Sve promenljive u Matlab-u su matrice. Specijalni sluajevi:

    matrice koje imaju dimenziju 1x1 tj. skalari

    matrice sa samo jednim redom ili kolonom, tj. vektori

  • Veba br 1. Uvod u MATLAB

    6

    druga kolona

    Matrice se u Matlab-u posmatraju kao viedimenzionalno polje brojeva. Dimenzije matrice predstavljaju broj vrsta i broj kolona matrice.

    Data je npr. matrica sa 3 vrste i 4 kolone:

    1 2 3 4

    5 6 7 8

    9 10 11 12

    1. Unos matrica

    Vrednosti elemenata matrice se unose izmeu uglasnih zagrada([ ]). Elementi jedne vrste matrice meusobno se razdvajaju zarezom ili praznim prostorom (space), a kolone se meusobno razdvajaju pomou znaka taka-zarez (;). Kada se jednom unese matrica, ona se automatski pamti u radnoj memoriji Matlab-a.

    Primer 6: >> A = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ] % generisanje 3x4 matrice A

    A =

    1 2 3 4

    5 6 7 8

    9 10 11 12

    2. Transponovanje matrice

    Transponovana matrica ima vrste koje su jednake kolonama originalne, i kolone koje su jednake

    vrstama originalne matrice. Ukoliko je originalna matrica bila dimenzija 3x4, transponovana e biti dimenzija 4x3. Transponovana matrica se u Matlab-u dobija uz pomo znaka apostof ().

    Primer 7: >> A' % transponovanje matrice A

    ans =

    1 5 9

    2 6 10

    3 7 11

    4 8 12

    prva vrsta

  • Veba br 1. Uvod u MATLAB

    7

    3. Raunanje sume po kolonama matrice

    Primer 8: >> sum(A) % raunanje sume po kolonama matrice

    ans =

    15 18 21 24

    Naredba, odnosno gotova funkcija za raunanje sume po vrstama ne postoji, ali do nje se moe doi na sledei nain: Primer 9: >> sum(A')' % raunanje sume po vrstama matrice

    ans =

    10

    26

    42

    4. Izdvajanje elemenata na glavnoj dijagonali matrice

    Primer 10: >> diag(A) % izdvajanje elemenata na glavnoj dijagonali matrice

    ans =

    1

    6

    11

    5. Pristup elementima matrice

    Neka postoji matrica B:

    1 2 3

    4 5 6

    7 8 9

    Nekom elementu matrice pristupamo naredbom B(vrsta, kolona), gde vrsta predstavlja redni broj vrste datog elementa, a kolona redni broj kolone. Dakle, uvek se prvo navodi redni broj vrste, a zatim kolone!

    Pristup svim elementima neke vrste matrice vri se jednom od sledeih naredbi B(vrsta, 1:end), B(vrsta, :) ili B(vrsta, 1:brojKolona), gde vrsta predstavlja

  • Veba br 1. Uvod u MATLAB

    8

    redni broj vrste kojoj elimo da pristupimo, a brojKolona predstavlja broj kolona date matrice.

    Pristup svim elementima neke kolone matrice vri se nekom od sledeih naredbi B(1:brojVrsta, kolona), B(: , kolona), gde kolona predstavlja redni broj kolone kojoj elimo da pristupimo, a brojVrsta predstavlja broj vrsta date matrice.

    Primer 11: >> B = [1 2 3 ; 4 5 6 ; 7 8 9] % definisanje matrice B B = 1 2 3 4 5 6 7 8 9 >> B(1, 3) % izdvajanje elementa koji se nalazi u prvoj vrsti i treoj koloni ans = 3 >> B(1, :) % izdvajanje prve vrste ans = 1 2 3 >> B(2, 1:end) % izdvajanje druge vrste ans = 4 5 6 >> B(1, 1:3) % izdvajanje prve vrste ans = 1 2 3 >> B(:, 2) % izdvajanje druge kolone ans = 2 5 8 >> B(1:3, 2) % izdvajanje druge kolone ans = 2 5 8

    Treba naglasiti da je prvi element neke matrice sa indeksima (1, 1), tj. da indeksi poinju od jedan, a ne od nula.

  • Veba br 1. Uvod u MATLAB

    9

    6. Promena vrednosti nekog od elemenata matrice

    Ukoliko elimo da promenimo jedan element matrice, treba izdvojiti taj element, i

    dodeliti mu eljenu vrednost.

    Ukoliko treba promeniti itavu vrstu ili kolonu, treba izdvojiti tu vrstu ili kolonu, i izjednaiti ih sa jednodimenzionalnom matricom (vektorom) koja ima odgovarajue eljene vrednosti elemenata.

    Primer 12: >> C = [1 1 1 ; 2 2 2 ; 3 3 3] % formiranje matrice C C = 1 1 1 2 2 2 3 3 3 >> C(1, 3) = 5; % promena vrednosti elementa na preseku prve vrste i trece % kolone; ta vrednost je bila 1, sada je 5 >> C % ispis promenjene matrice C = 1 1 5 2 2 2 3 3 3 >> D = [5 5 5]; % formiranje vektora 1x3 >> C(1, :) = D; % zamena prve vrste matrice C vektorom D >> C C = % ispis dobijene matrice 5 5 5 2 2 2 3 3 3 >> G = [6 6 6]; % formiranje vektora 1x3 >> C(:, 3) = G; % zamena tree kolone matrice C vektorom G >> C C = % ispis dobijene matrice; svi elementi tree kolone % sada imaju vrednost 6 5 5 6 2 2 6 3 3 6

    7. Poveavanje dimenzija matrice

    Postupak je slian kao kod formiranja matrice. Sa leve strane jednakosti napie se naziv matrice, a sa desne strane u uglasnim zagradama ([ ]) prvo se opet navede naziv matrice, a onda pojedinani elementi koji se dodaju, ili i itavi vektori ili matrice. Treba voditi rauna o dimenzijama i ne treba zaboraviti znak taka zarez (;) ukoliko se dodaju vrste. Postupak je objanjen i u narednom primeru.

  • Veba br 1. Uvod u MATLAB

    10

    Primer 13: >> A = [1 2] % formiranje matrice dimenzija 1x2 A = 1 2 >> A = [A 3] % dodavanje elementa 3, sada je matrica dimenzija 1x3 A = % ispis promenjene matrice 1 2 3 >> A = [A ; 4 5 6] % dodavanje cele nove vrste sa elementima 4, 5 i 6 % u ovom sluaju je potrebno staviti znak taka-zarez % pre navoenja elemenata A = % dobijena matrica je dimenzija 2x3 1 2 3 4 5 6 >> B = [A ; A] % formiranje nove matrice B na osnovu postojee A B = % dobijena matrica se sastoji od dve 2x3 matrice, tj. % ona je dimenzija 4x3 1 2 3 4 5 6 1 2 3 4 5 6 >> C = [A A] % opet formiranje nove matrice B na osnovu postojee A % samo to je ovaj put izostavljen znak taka-zarez C = % dobijena matrica je sada dimenzija 2x6 1 2 3 1 2 3 4 5 6 4 5 6 >> D = [7 7 7 7]; % formiranje vektora D dimenzija 1x4 >> B = [B D'] % dodavanje kolone matrici B; vektor D treba % transponovati, da bi bio dimenzija 4x1 B = % nova konana matrica je dimenzija 4x4 1 2 3 7 4 5 6 7 1 2 3 7 4 5 6 7

    8. Brisanje vrsta i kolona matrice

    Potrebno je naznaiti poziciju kolone ili vrste koje treba izbrisati, i izjednaiti je sa praznim

    vektorom. Primer 14: >> A = [1 2 ; 3 4] % formiranje matrice A dimenzija 2x2 A = 1 2

  • Veba br 1. Uvod u MATLAB

    11

    3 4 >> A (:, 2) = [] % brisanje druge kolone A = % nova matrica ima samo jednu kolonu 1 3

    9. Automatsko popunjavanje vrednosti matrice

    Ukoliko treba generisati matricu iji su svi elementi jednaki nuli, koristi se naredba: promenljiva = zeros(brojVrsta, brojKolona).

    Ukoliko treba generisati matricu iji su svi elementi jedinice, naredba je: promenljiva = ones(brojVrsta, brojKolona).

    Za generisanje jedinine matrice koristi se naredba: promenljiva = eye(brojVrsta, brojKolona).

    Veoma esto postoji potreba za generisanjem vektora sa konstantnim korakom izmeu elemenata. Sintaksa u ovom sluaju ima strukturu: promenljiva = poetnaVrednost : korak : krajnjaVrednost.

    Primer 15: >> A = zeros (2, 3) % formiranje matrice dimenzija 2x3 iji su svi % elementi jednaki nuli A = 0 0 0 0 0 0 >> B = ones (1 , 5) % formiranje matrice dimenzija 1x5 iji su svi % elementi jednaki nuli B = 1 1 1 1 1 >> C = eye (3, 3) % generisanje jedinine 3x3 matrice % moglo je i C = eye (3) C = 1 0 0 0 1 0 0 0 1 >> D = 1 : 2 : 9 % generisanje vektora D sa konstantnim korakom 2 % izmeu elemenata, sa poetnim elementom 1 i krajnjim 9 D = 1 3 5 7 9 >> E = 0 : 0.5 : 2 % generisanje vektora E sa konstantnim korakom 0.5 % izmeu elemenata, sa poetnim elementom 0 i krajnjim 2 E = 0 0.5000 1.0000 1.5000 2.0000

    Mogu se i kombinovati prethodno navedene naredbe pri generisanju elemenata matrice.

  • Veba br 1. Uvod u MATLAB

    12

    Primer 16: >> F = [ones(1,4) 5 zeros(1, 2)] % kombinovanje naredbi ones i zeros F = 1 1 1 1 5 0 0

    Za generisanje matrice sa uniformno distribuiranim sluajnim elementima koristi se naredba: promenljiva = rand (brojVrsta, brojKolona).

    Za generisanje matrice sa normalno distribuiranim sluajnim elementima koristi se naredba: promenljiva = randn (brojVrsta, brojKolona).

    Primer 17: >> A = rand (2, 3) % matrica A sa uniformno distribuiranim elementima A = 0.8147 0.1270 0.6324 0.9058 0.9134 0.0975 >> B = randn (2, 3) % matrica B sa normalno distribuiranim elementima B = -0.4336 3.5784 -1.3499 0.3426 2.7694 3.0349

    10. Matematike operacije sa matricama

    sabiranje Mogu se sabirati vie matrica istih dimenzija ili matrica sa skalarom. U prvom sluaju sabiraju se odgovarajui elementi matrica, a u drugom se vrednost skalara dodaje svakom elementu matrice. Primer 18: >> A = [1 1 1 ; 1 1 1] % formiranje 2x3 matrice A A = 1 1 1 1 1 1 >> B = [2 2 2 ; 2 2 2] % formiranje 2x3 matrice B B = 2 2 2 2 2 2

  • Veba br 1. Uvod u MATLAB

    13

    >> C = A + B % matrica C jednaka je zbiru matrica A i B C = 3 3 3 3 3 3 >> D = C + 2 % sabiranje matrice D sa skalarom D = 5 5 5 5 5 5

    mnoenje Operator * obuhvata mnoenje matrice matricom, ili mnoenje matrice skalarom. Pri tome treba voditi rauna o dimenzijama matrica koje se mnoe! Ukoliko se mnoe matrice A i B, broj kolona matrice A mora biti jednak broju vrsta matrice B da bi operacija mnoenja prola bez

    greke. Prilikom mnoenja matrice skalarom, svaki pojedinani element matrice se mnoi datim skalarom. Primer 19: >> A = [ 1 1 ; 2 2] % formiranje matrice A dimenzija 2x2 A = 1 1 2 2 >> B = [ 1 1 ; 2 2 ; 3 3 ; 4 4] % formiranje 4x2 matrice B B = 1 1 2 2 3 3 4 4 >> C = A * B % mnoenje matrice dimezija 2x2 sa matricom dimenzija 4x2, % i zbog neslaganja dimenzija dolazi do greke pri mnoenju! ??? Error using ==> mtimes Inner matrix dimensions must agree. >> C = A * B' % invertovana matrica B je dimenzija 2x4, pa je mnoenje % regularno izvedeno C = 2 4 6 8 4 8 12 16 >> D = A * 2 % svaki pojedinani element matrice se mnoi skalarom D = 2 2 4 4

    Operator .* slui za mnoenje elemenata matrica po principu element sa elementom. Pri tome, dimenzije matrica koje se mnoe moraju biti jednake!

  • Veba br 1. Uvod u MATLAB

    14

    Primer 20: >> A = [1 2 3 ; 4 5 6 ; 7 8 9] % formiranje 3x3 matrice A A = 1 2 3 4 5 6 7 8 9 >> B = [1 1 1 ; 2 2 2 ; 3 3 3] % formiranje 3x3 matrice B B = 1 1 1 2 2 2 3 3 3 >> C = A.*B % mnoenje operatorom .* (element sa elementom) C = 1 2 3 8 10 12 21 24 27 >> D = A*B % mnoenje operatorom * D = 14 14 14 32 32 32 50 50 50

    stepenovanje Operator ^ predstavlja matrini stepen date matrice, dok operator .^ predstavlja stepenovanje svih pojedinanih elemenata matrice (element sa elementom). Primer 21: >> A = [ 1 1 1 ; 2 2 2 ; 3 3 3] % formiranje 3x3 matrice A A = 1 1 1 2 2 2 3 3 3 >> A ^ 2 % stepenovanje operatorom ^ ans = 6 6 6 12 12 12 18 18 18 >> A .^ 2 % stepenovanje operatorom .^ (element sa elementom) ans =

  • Veba br 1. Uvod u MATLAB

    15

    1 1 1 4 4 4 9 9 9

    deljenje Matlab poseduje operatore / i \ koji su namenjeni za mnoenje matrice inverzijom druge

    matrice. Izraz predstavlja mnoenje , a izraz predstavlja mnoenje . Postoje i operatori ./ i .\ koji predstavljaju deljenje sa desna, odnosno sa leva. Matrice u

    ovom sluaju moraju biti istih dimenzija. Sledei primer ilustruje upotrebu ovih operatora. Primer 22: >> A = [2 4 ; 6 8] % formiranje 2x2 matrice A A = 2 4 6 8 >> B = [1 2] % formiranje 1x2 matrice B B = 1 2 >> A/B % deljenje operatorom / ans = 2.0000 4.4000 >> C = [1 2 3] % formiranje 1x3 matrice C C = 1 2 3 >> D = [2 1 9] % formiranje 1x3 matrice D D = 2 1 9 >> C./D % deljenje element sa elementom, sa desna ans = 0.5000 2.0000 0.3333 >> C.\D % deljenje element sa elementom, sa leva ans = 2.0000 0.5000 3.0000

  • Veba br 1. Uvod u MATLAB

    16

    Neke funkcije u Matlab-u

    sqrt(x) : kvadratni koren promenljive x

    exp(x) : eksponencijalna funkcija sa osnovom e

    abs(x) : apsolutna vrednost

    log(x) :logaritamska f-ja sa osnovom e

    log10(x) : logaritamska f-ja sa osnovom 10

    factorial(x) : faktorijel broja x

    sin(x), cos(x), tan(x), cot(x), asin(x), acos(x), atan(x), sinh(x),

    cosh(x), tanh(x), coth(x) : trigonometrijske f-je koje oekuju vrednost za veliinu

    ugla u radijanima

    max (x) : vraa vektor koji sadri maksimalne elemente po kolonama matrice x

    mean(x) : vraa vektor koji sadri aritmetke sredine elemenata u odgovarajuim

    kolonama

    size(x) : vraa dimenzije argumenta u obliku vektora

    length(x) : vraa veu dimenziju argumenta

    det(x) : vraa determinantu matrice x

    Specijalne vrednosti u Matlab-u

    pi : konstanta

    i, j : imaginarna jedinica

    ans : ako rezultatu izraunavanja nije dodeljena promenljiva, podaci se uvek smetaju

    u ovu lokaciju

    Funkcije za grafiko prikazivanje

    Matlab prua mnotvo mogunosti za crtanje funkcija. Funkcija plot, jedna od najee korienih funkcija za grafiki prikaz, ima razliite oblike zavisno od ulaznih argumenata. plot(x) : generie se grafiki prikaz elemenata vektora x u odnosu na indeks elementa

    plot(t, x) : ova naredba crta na vertikalnoj osi vrednosti vektora x u odnosu na vrednosti vektora t koje su na horizontalnoj osi plot(t1, x1, t2, y2) : generie se viestruki grafik jednom naredbom

  • Veba br 1. Uvod u MATLAB

    17

    Primer 23: >> x = [2 3 3 2 5 6]; % generisanje vektora x >> plot(x) % iscrtavanje vekrota x, na horizontalnoj osi su % vrednosti indeksa elemenata (Slika 2.) >> t = 0 : pi/100 : 2*pi; % generisanje vektora t, koji e predstavljati % vremensku osu >> x = sin (t); % generisanje vektora x iji su elementi vrednosti sinusa % odgovarajuih elemenata vektora t >> plot(t, x); % iscrtavanje elemenata vektora x u odnosu na vrednosti % vektora t (Slika 3.) >> y = cos (t); % generisanje vektora y >> plot(t, x, t, y); % iscrtavanje viestrukog grafika sa zajednikom % vremenskom osom (Slika 4.)

    Slika 2. Slika 3. Slika 4.

    Naredba plot moe imati jo po jedan argument za svaki par t,x koji se zove color_style_marker i on se pie unutar znaka navoda, a sastoji se iz definicije boje, tipa linije i tipa markera za iscrtavanje grafika, respektivno.

    Slika 5. Neke od moguih oznaka

    Primer 24: >> plot(t, x, 'm:*', t, y, 'c-.o'); % primer promene boje i tipa linije, % kao i tipa markera za % iscrtavanje (Slika 6.)

    1 2 3 4 5 62

    2.5

    3

    3.5

    4

    4.5

    5

    5.5

    6

    0 1 2 3 4 5 6 7-1

    -0.8

    -0.6

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    0 1 2 3 4 5 6 7-1

    -0.8

    -0.6

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    OZNAKE ZA BOJU OZNAKE ZA TIP LINIJE OZNAKE ZA TIP MARKERA

    c cyan

    - puna

    +

    m magenta -- isprekidana o

    y yellow : takasta *

    r red _. crta-taka s kvadrat

    g green

    ^ trougao

    b blue d dijamant

    w white p pentagram

    k black x

  • Veba br 1. Uvod u MATLAB

    18

    Slika 6.

    Ukoliko treba uneti nazive osa, ili naslov grafika, koriste se sledee naredbe:

    xlabel (naziv x-ose) : ispisivanje naziva x-ose

    ylabel (naziv y-ose) : ispisivanje naziva y-ose

    title (naslov grafika) : ispisivanje naslova grafika

    Naredba stem crta diskretne signale, tj. kruiem (to je podrazumevani tip markera) oznaava vrednosti odbiraka. Naredba stairs crta podatke u obliku stepenastog grafika. Naredba bar crta podatke u obliku bar dijagrama. Primer 25: >> t = 0:1:10; % definisanje vektora t, koji predstavlaj vremensku osu >> x = t*3; % vektor x koji e se crtati >> stem(t,t*3); % iscrtavanje odbiraka vektora x (Slika 7.) >> stairs(t,t*3); % stepenasto iscrtavanje (Slika 8.) >> bar(t,t*3); % bar dijagram (Slika 9.)

    Slika 7. Slika 8. Slika 9.

    Naredba subplot Ova naredba ne crta. Ona samo deli prozor za grafiko prikazivanje na eljeni broj delova i odreuje poziciju na kojoj e se crtati naredni grafik (upotrebom neke od naredbi za crtanje).

    0 1 2 3 4 5 6 7-1

    -0.8

    -0.6

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    0 1 2 3 4 5 6 7 8 9 100

    5

    10

    15

    20

    25

    30

    0 1 2 3 4 5 6 7 8 9 100

    5

    10

    15

    20

    25

    30

    0 1 2 3 4 5 6 7 8 9 100

    5

    10

    15

    20

    25

    30

  • Veba br 1. Uvod u MATLAB

    19

    Primer 26: >> t = 0 : pi/100 : 2*pi; % definisanje vremenske ose >> x = sin(t); % definisanje signala x >> y = sin (t.^2); % definisanje signala y >> z = cos (t./2); % definisanje signala z >> subplot(2,2,1); % prozor za grafiko prikazivanje e imati 4 dela, % tj. dve vrste i dve kolone; % trea cifra, tj. 1 znai da se trenutno crta % u prvom delu >> plot(t, x); % crtanje prvog grafika >> subplot(2,2,2); % prelazi se u drugi deo >> plot(t, y, 'm'); % crtanje drugog grafika >> subplot(2,2,3); % trei deo >> plot(t, z, 'g'); % crtanje treeg grafika >> subplot(2,2,4); % etvrti deo >> plot(t, x); % crtanje etvrtog grafika >> grid on; % dodavanje mree na treem grafiku

    Slika 10.

    Pisanje u Editor-u Sve naredbe se mogu pisati u Komandnom prozoru, kao to je do sada raeno, ili se mogu pisati u posebnom fajlu. Ukoliko se naredbe piu u Komandnom prozoru, one se trenutno izvravaju nakon pritiska na taster , i to jedna po jedna, kako se i unose. Ukoliko se piu u posebnom .m fajlu, vie naredbi se navodi jedna za drugom, i one e se tako i izvravati ukoliko se u Komandnom prozoru navede ime fajla u kome su zapisane. Editor za pisanje .m fajlova se pokree iz osnovnog menija: File/New/Blank M-File. Nakon to se ispiu eljene naredbe .m fajl treba snimiti pod eljenim imenom: File/Save As. Izvravanje niza naredbi zapisanih u ovom fajlu se postie unosom imena fajla u Komandni prozor, i pritiskom tastera .

    0 2 4 6 8-1

    -0.5

    0

    0.5

    1

    0 2 4 6 8-1

    -0.5

    0

    0.5

    1

    0 2 4 6 8-1

    -0.5

    0

    0.5

    1

    0 2 4 6 8-1

    -0.5

    0

    0.5

    1

  • Veba br 1. Uvod u MATLAB

    20

    Primer 27: % Treba uneti sledee naredbe u Editor:

    t = 0:0.1:2*pi; % vremenska osa x = cos(t); % signal x y = sin(t); % signal y plot(t,x,'m',t,y,'c'); % crtanje signala x i signala y na istom grafiku title ('Crtanje sinusa i kosinusa'); % naslov grafika grid on; % iscrtavanje mreze

    % Zatim snimiti fajl pod nekim nazivom, i onda uneti naziv fajla u Komandni

    % prozor i pritisnuti taster . Naredbe e biti izvrene.

    Rezultat izvravanja datog .m fajla je grafik prikazan na Slici 11.

    Slika 11.

    Matlab korisnike funkcije U Matlab-u je, osim korienja ugraenih funkcija, mogue kreirati i koristiti i sopstvene (korisnike) funkcije. One e se svaki put izvravati razliito, u zavisnosti od unetih parametara. Prva linija funkcije obavezno poinje rezervisanom reju function i definie ime i formalne argumente funkcije. Slubena re end oznaava kraj funkcije. function [izlazniArgumenti] = imeFunkcije (ulazniArgumenti)

    Dat je primera definisanja funkcije koja za ulazne argumente prima jednu matricu i jedan broj. Izlazni argumenti su dve nove matrice, jedna nastala deljenjem ulazne matrice sa ulaznim brojem, a druga njihovim mnoenjem.

    0 1 2 3 4 5 6 7-1

    -0.8

    -0.6

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1Crtanje sinusa i kosinusa

  • Veba br 1. Uvod u MATLAB

    21

    Primer 28: function [deljenje, mnozenje] = operacije (matrica, broj)

    % deljenje i mnoenje su izlazni argument, matrica i broj su ulazni argument,

    % a operacija je ime funkcije

    deljenje = matrica ./ broj; % prvi izlazni argument se dobija deljenjem

    % ulazne matrice i ulaznog broja mnozenje = matrica * broj; % drugi izlazni argument se dobija mnoenjem

    % ulazne matrice i ulaznog broja

    end % end oznaava kraj funkcije

    Prilikom pozivanja date funkcije, u Komandnom prozoru treba pisati sledee: >> A = [2 4 6 ; 3 5 7] % generisanje ulazne matrice A = 2 4 6 3 5 7 >> [d, m] = operacije (A,2); % izvravanje funkcije nad matricom A i brojem 2 >> d % ispisivanje prvog izlaznog argument; on je jednak rezultatu % deljenja matrice A i broja 2 d = 1.0000 2.0000 3.0000 1.5000 2.5000 3.5000 >> m % ispisivanje drugog izlaznog argument; on je jednak rezultatu % mnoenja matrice A i broja 2 m = 4 8 12 6 10 14