Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

UVOD U MATLAB

Programski paket Matlab (MATrix LABoratory) je matematiko i simulaciono okruenje koje omoguava matematike proraune, razvijanje algoritama, simuliranje i analizu procesa, obradu podataka, vizuelizaciju, a sve to kroz interaktivan i programski rad. Interaktivan rad se postie zadavanjem naredbi iz komandnog prozora (Command Window). Na taj nain se naredbe izvravaju odmah nakon pritiska ENTER tastera. Prethodne naredbe se mogu nai u okviru prozora za istoriju naredbi (Command History), ili pritiskom na strelicu na gore (). U cilju ubrzavanja pretrage, mogue je otkucati pocetna slova traene naredbe. U okviru Matlab-a, postoje brojne ugraenje funkcije, koje se, na osnovu namene, mogu grupisati u odreene klase, koje se nazivaju Toolbox-ovi (Signal Processing, Control Systems, Filter Design...). Sa druge strane ostavljena je mogunost pisanja sopstvenih programa i funkcija, koji se mogu kreirati iz programskih Editor-a. Takve funkcije se mogu pozivati iz komandnog prozora ili iz nekog drugog programa, koji se moga nalaziti u okviru istog radnog foldera, path-a. Matlab nudi i mogunost korienja help-a, koji osim definicija samih naredbi sadri i primere kako se one mogu korisiti. Na slici je prikazano radno okruenje Matlaba, koje se najee sastoji iz komandnog prozora, istorije naredbi, trenutnog direktorijuma, kao i radnog prostora, tj Workspace-a. Za jednostavno naputanje Matlab-a moe se iskoristiti naredba quit u komandnom prozoru..

Sl1. Matlab okruenje

Matlab kao kalkulator Kucanjem naredbi direktno u komandnom prozoru >> 2+3/4*5 ans = 5.7500 Izraz se izraunava u skladu sa prioritetima. Najpre se rauna izraz u zagradama, zatim mnoenje i deljenje koje se rauna sa leva na desno, i konano sabiranje i oduzimanje koje se rauna sa leva na desno. Uvoenjem operatora () utie se na unapred utvrene prioritete. >> ans*(2+4)/5 ans = 6.9000 Napomena: Matlab prepoznaje i \!!! Brojevi i formati u Matlabu Matlab podrava rad sa realnim, celobrojnim, kompleksnim brojevima. Postoje i specijalne vrste brojeva, kao to su NaN (Not a Number), Inf (prilikom deljenja sa nulom) >> 0/0 ans = NaN >> 2/0 ans = Inf Napomena: Matlab zna za Pi!

Primer: Korienjem funkcije format moe se definisati nain na koji se brojevi ispisuju (npr. broj sa veom tanou ili kao razlomak). Pretpostavljeni tip je short. >> 3/4 ans = 0.7500 >> format long >> 3/4 ans = 0.750000000000000 >> format rat >> 3/4 ans = 3/4 >> format >> 3/4 ans = 0.7500 >> 0.000000001 ans = 1.0000e-009 Za vie detalja >>help format FORMAT Set output format. FORMAT with no inputs sets the output format to the default appropriate for the class of the variable. For float variables, the default is FORMAT SHORT..........

Korisne komande >> % tekst koji se nalazi nakon znaka % predstavlja komentar >> clear % brisanje svih promenljivih iz workspace-a >> clear a b % brisanje promenljivih a i b >> close all % zatvaranje svih slika >> clc % brie tekst iz komandnog prozora >> whos % lista promenljivih u workspace-u sa detaljima

Matematike funkcije >> sin(2) ans = 0.9093 >> tan(2) ans = -2.1850 >> exp(0) ans = 1 log10(10) ans = 1 >> 2^0.5 ans = 1.4142 >> sign(4), sign(-4) ans = 1 ans = -1 >> abs(-4) ans = 4 angle(1-1j) ans = -0.7854 >> real(1-1i) ans = 1 >> cos(2) ans = -0.4161 >> atan(1) ans = 0.7854 >> log(exp(5)) ans = 5 >> 2^2 ans = 4 >> sqrt(2) ans = 1.4142 >> floor(4.53), ceil(4.53), round(4.53) ans = 4 ans = 5 ans = 5 abs(1+1i) ans = 1.4142 conj(1-1j) ans = 1.0000 + 1.0000i >> imag(1-1i) ans = -1

Strukture podataka u Matlab-u U Matlab-u su sve promenljive date preko matrica. Na taj nain se mogu prikazati i realni i kompleksni brojevi, i skalari i vektori i visedimenzione matrice. Za posebne upotrebe preko matrica je mogue zadati i stringove i polinome. Skalari se definisu kao matrice 1x1, jednostavnim zadavanjem vrednosti promenljive: >> a=2; dok se vektori (matrice) zadaju korienjem uglastih zagrada, gde se kolone razdvajaju razmakom, a znak ; oznaava kraj jedne vrste i poetak nove. >> C=[5 6] C= 5 6

>> B=[1 2;3 4] B= 1 3 2 4

Mogu se koristiti i ... za nastavak naredbe u sledeem redu >> B=[1 2;... 3 4] B= 1 3 2 4

Ukoliko se posle naredbe ne stavi znak ; rezultat naredbe se ispisuje u komandnom prozoru, kao to je sluaj u prethodna dva primera. Dok u primeru za definisanje promenljive a nije dolo do ispisivanja rezultata. Vektor kolona se moe zadati na dva naina. Jedan je navodjenjem elemenata koji su razdvojeni sa ;, a drugi da se formira vektor vrsta i korienjem znaka za transponovanje (apostrof). U okviru Matlab-a mogue je izvriti predled odredjene zadate promenljive, Ili svih zadatih promenljivih naredbom whos:

>> whos B Name B >> whos Name B C a Size 2x2 1x2 1x1 Bytes Class 32 double 16 double 8 double Attributes Size 2x2 Bytes Class 32 double Attributes

Osnovne informacije o vektorima i matricama se mogu dobiti sledeim funkcijama: Funkcija length size numel ndims isequal isempty Primer: Upotrebom matrica definisati string. >> recenica='Uvod u Matlab' %za konverziju brojeva u string f-ja num2str recenica = Uvod u Matlab >> whos recenica Name recenica Size 1x13 Bytes Class Attributes 26 char Opis Duina vektora Dimenzije matrice Broj elemenata Broj dimenzija Da li su vektori jednaki? Da li je matrica prazna?

Vektori i matrice se mogu zadavati i na drugaije naine >> e=0:10 e= 0 1 2 3 4 5 6 7 8 9 10

>> e=0:0.1:10; >> size(e) ans = 1 101 >> e=linspace(0,10,101); Mogu se formirati i komplikovaniji signali. Primer. Formirati signal () = e sin , za = 0: 2. Ukoliko bismo to pokuali da uradimo, javlja se sledea greka: >>t=0:0.1:2*pi; >> x=exp(t)*sin(t); ??? Error using ==> mtimes Inner matrix dimensions must agree. Problem je u pokuaju da se matrino pomnoe dva vektora, pa je prijavljena greka da se dimenzije vektora ne slau. Ono to je neophodno uraditi jeste mnoiti lan po lan, to se postie na sledei nain >> x=exp(t).*sin(t); Na ovo se mora obratiti panja kod operacija mnoenja, deljenja i stepenovanja. Mogue je raditi nadovezivanje vektora i matrica, mora se voditi rauna o dimenzijama. >> [C;B] ans = 5 1 3 6 2 4

>> [C B] ??? Error using ==> horzcat CAT arguments dimensions are not consistent.

Pojedinim elementima matrice se moe pristupati, navodjenjem pozicije elementa u malim zadradama. >> C(2) ans = 6 >> B(2,1) ans = 3 Takodje, u okviru Matlab-a je vrlo znaajno korienje znaka :. Na taj nain se moe odabrati deo neke vrste/kolone, ili pak cela kolona: >> D=[1 2 3 4;5 6 7 8]; >> D(1,2:4) ans = 2 3 4

>> D(1,:) ans = 1 2 3 4

>> D(:,1) ans = 1 5 Napomena: Indeksi poinju od 1, a ne od 0, kao u nekim programskim jezicima! Ukoliko se u matricu dodaje element na poziciju koja prevazilazi dimenzije same matrice, vri se automatsko dodavanje nula u cilju prosirenja matrice. >> D(3,2)=2 D=

1 5 0

2 6 2

3 7 0

4 8 0

Pri imenovanju promenljivih imati u vidu da se pravi razlika izmedju malih i velikih slova, kao i da postoje pojedine rezervisane reci: ans, pi, nan, inf,... Reavanja sistema jednaina Primer1. 2 + 3 4 = 12 3 + + = 2 2 + 5 = 4

>> A=[2 3 -4; -3 1 1; 1 -2 5]; >> B=[12 -2 4]' >> x=A^-1*B %moze i A\B x= 3.0000 4.8571 2.1429

Primer2. Neka je sistem opisan vezom izmedju ulaza i izlaza kao = + 2

Pronai nepoznate parametre a i b, ako su na raspolaganju merenja x 5 10 15 20 30 50 >> x=[5 10 15 20 30 50]'; >> A=[x x.^2]; y 10.25 36.5 78.75 137.0 301.5 822.5

>> b=y'; >> ab=A\b ab = 0.4500 0.3200 Korisne funkcije Matlab ima veliki broj ugraenih funkcija. Blokovi funkcija koje su medjusobno povezane nekim odlikama ine Toolbox-ove. >> E=[1 3 5 3 2 6] >> reshape(E,2,3) ans = 1 3 5 3 2 6

>> min(E) ans = 1 >> min(B) ans = 1 2

>> help min

Funkcije min max sum find sort det rank eig rand trace zeros ones eye diag inv Relacioni i logiki operatori

Opis Minimum niza Maksimum niza Suma lanova niza Pronalazi elemente niza Sortira niz Determinanta matrice Rang matrice Sopstvene vrednosti matrice Generator sluajnih brojeva Trag matrice Nula matrica Matrica jedinica Jedinina matrica Dijagonalna matrica Invertovana matrica

Matlab podrava rad sa osnovnim relacionim i logikim operatorima. Od relacionih operatora implementirani su: vee (>), vee ili jednako (>=), manje (<), manje ili jednako (<=), jednako (==) i razliito (~=). Rezultat ovih operacija je logikog tipa i moe biti: tano (1) ili netano (0). >> 1==2 ans = 0 >> rez=(1==1) rez = 1 >> whos rez Name rez Size 1x1 Bytes Class 1 logical Attributes

Dobijeni rezultat mogue je, bez daljih konverzija, koristiti za dalje proraune: >> (1<=6)*3-2.2 ans =

0.8000 Mogue je i poreenje vektora i matrica: >> A=[1 2 3 4]; B=[2 3 4 1]; >> A<B ans = 1 1 1 0

>> A==3 ans = 0 0 1 0

Slina pravila vae i za logike operatore. Standardni logiki operatori su: i (&), ili (|) i negacija (~). >> A==3 | A==4 ans = 0 0 1 1

Primer: U datom nizu nai sve lanove vee od 2. >> A=[1 5 2 4 6 8 3 6]; >> A>2 ans = 0 1 0 1 1 1 1 1

>> B=A(A>2) B= 5 4 6 8 3 6

You might also like