Vous êtes sur la page 1sur 24

UVOD U MATLAB

1. UVOD
Matlab predstavlja moderno, matematiko, fleksibilno, simulaciono okruenje koje povezuje
izraunavanja, grafiki prikaz i programiranje. Poznat po visoko optimizovanim matrinim i
vektorskim izraunavanjima, Matlab nudi jedan intuitivan jezik za izraavanje problema i
njihovih reenja, kako matematiki, tako i vizuelno. Matlab se najee koristi za:

Numeriko izraunavanje i razvijanje algoritama


Simboliko izraunavanje
Modeliranje i simulaciju
Analizu podataka i obradu signala
Inenjersku grafiku i naunu vizuelizaciju

Matlab predstavlja otvoreno okruenje i ima modularnu strukturu koja se sastoji od osnovne
instalacije i mnogo specijalizovanih toolbox-ova koji predstavljaju grupu srodnih funkcija,
odnosno naredbi, kao to su: Control System, Signal Processing, Optimization, Robust Control,
System Identification, Neural Networks, Simulink, itd.
Matlab je tokom godina poboljavan i unapreivan u skladu sa potrebama matematiara,
inenjera i naunika koji su sa razvojem nauke i tehnike nailazili na potrebu da se postojee
naredbe i funkcije Matlaba unaprede, kao i da se naprave dodatni toolbox-ovi koji pruaju nove
mogunosti.
U dananje vreme, u univerzitetskom okruenju Matlab predstavlja standardni alat za
uvodne i napredne kurseve iz matematike, inenjerstva i nauke. U industrijskom okruenju,
Matlab je alat izbora za istraivanje, razvoj i analizu visoke produktivnosti.

2. MATLAB OKRUENJE

Programski paket Matlab omoguava interaktivan i programski rad. U interaktivnom radu


naredbe se zadaju u komandnom prozoru Matlaba i interpretiraju odmah po zadavanju.
Prethodno otkucane naredbe ostaju u istoriji i mogu se vratiti pritiskom na kursorski taster
(gore), editovati i ponovo pokrenuti. Programi se takoe pozivaju iz komandnog prozora
navoenjem imena i interpretiraju liniju po liniju. Izgled komandnog prozora prikazan je na
iduoj slici.

Slika 2.1: Matlab interaktivno okruenje


Ako je potrebno da se napiu linije koda u Matlab-u koje e trajno biti sauvane potrebno je
otvoriti novi m-fajl (matlab fajlovi su sa ekstenzijom .m), odnosno ui u Matlab editor, a zatim
ga sauvati pod eljenim imenom.

Slika 2.2: Matlabov programski editor: Otvaranje novog Matlab fajla

Novi Matlab fajl otvara se tako to se ide na File, pa zatim na New i bira se Blank M-file
kao to je prikazano na slici 2.2. Izgled Matlab fajla prikazan je na iduoj slici. Pre nego to se
pokrene m-fajl potrebno ga je prethodno sauvati. M-fajl se uva tako to se ide na File, pa zatim
na Save As i zatim se uva pod eljenim imenom. Na ovaj nain svi m-fajlovi su trajno sauvani
i mogu se pokretati ponovo po potrebi svaki put kada se otvori Matlab. Naravno, m-fajl se moe
i menjati po elji, pa se zatim mogu sauvati izmene.

Slika 2.3: uvanje m-fajla

Nakon to je sauvan m-fajl moemo ga pokrenuti klikom na zelenu strelicu koja se nalazi
odmah ispod opcije Window. Nakon pokretanja m-fajla sve promenljive koje smo kreirali se
uvaju i nalaze se u interaktivnom okruenju u gornjem desnom uglu u delu prozora koji se
naziva Workspace. Na slici 2.1 vidi se sauvana promenljiva "A". Ako bismo eleli da vidimo
ta sadri ova promeljiva potrebno je dva puta kliknuti na "utu kuicu" i sadraj promenljive e
biti prikazan. Takoe, moemo u komandnom prozoru direktno otkucati naziv promenljive i
odmah ispod e nam biti prikazan njen sadraj. Ilustracija ovoga prikazana je na slici 2.4.
Takoe, u interaktivnom okruenju ispod prozora Workspace nalazi se prozor Command
History gde je prikazano po datumima koje linije koda su bile ispisivane u komandnom prozoru.

Slika 2.4: Prikaz sadraja promenljive u Workspace-u


3. OSNOVNE STRUKTURE PODATAKA U MATLAB-U

Sve promenljive u Matlab-u su matrice. Mora se voditi rauna da li se promenljive


obeleavaju malim ili velikim slovima, poto Matlab razlikuje mala i velika slova. Na primer, u
komadnom prozoru definisaemo promenljivu x. Ako elimo da dobijemo prikaz promenljive,
njenu veliinu, koliko bajtova zauzima i da li je realna ili kompleksna upotrebiemo naredbu
whos.
>> x=1;
>> whos
Name
x

Size
1x1

Bytes Class

Attributes

8 double

Stringovi su takoe matrice, ali vrste karaktera. Ako definiemo promenljivu y kao string i zatim
ukucamo whos videemo da se klasa razlikuje u odnosu na promenljivu x.
>> y='Ovo je string'
y=
Ovo je string

>> whos
Name

Size

1x13

Bytes Class
26 char array

Da bi se spreilo trenutno prikazivanje podataka naredbe se zavravaju sa taka-zarezom (;).


Takoe kada piemo program u Matlab editoru ako ne elimo ispisivanje podataka nakon
izvravanja potrebno je naredbe zavriti taka-zarezom (;). Nakon kucanja naredbe whos vidimo
da je Matlabu promenljiva x definisana kao matrica dimenzija 11 realnih brojeva dvostruke
preciznosti. Naredba whos izlistava sve definisane promenljive u Matlabovom radnom
okruenju. Ako elimo da izlistamo sve promenljive koje se trenutno koriste (tj. koje se nalaze u
radnom okruenju (Workspace)) samo po njihovom imenu koristi se naredba who to je
prikazano na iduem primeru.
>> x=1;
>> y=45;
>> z=32;
>> who
Your variables are:
x y z
Ako elimo da definiemo matricu u Matlab-u potrebno je otvoriti uglaste zagrade ([]) i
definisati vrstu po vrstu tako to se svaki element u vrsti odvaja ili zarezom ili space-om, a
prelazak na novu vrstu se oznaava sa taka-zarezom (;). Definisanje matrice prikazano je na
iduem primeru.
>> A=[1 1 1;2 2 2;3 3 3]
A=
1

Ako elimo da pristupamo elementima matrice potrebno je definisati poziciju elementa kome
elimo da pristupimo, odnosno vrstu i kolonu u kojoj se element nalazi. Element koji se nalazi u

drugoj vrsti i prvoj koloni matrice A je 2, a element koji se nalazi u treoj vrsti i treoj koloni
jeste 3. Ovo je ilustrovano na iduem primeru.
>> A(2,1)
ans =
2
>> A(3,3)
ans =
3

Takoe, ako elimo da nam se ispiu samo elementi odreene vrste ili kolone koristimo dve
take (:) i broj vrste, odnosno kolone koje elimo da nam se prikae. Na primer ako bismo eleli
da nam se ispiu elementi prve kolone matrice A zapisali bismo A(:,1). Ako bismo eleli da nam
se ispiu elementi druge vrste napisali bismo A(2,:). Ovo je ilustrovano na iduem primeru.
>> A(:,1)
ans =
1
2
3
>> A(2,:)
ans =
2

Postoje jo dve korisne naredbe koje obezbeuju informacije o promenljivama. To su size i


length. Naredba size obezbeuje informacije o dimenzijama promenljive, dok naredba length
daje informaciju o maksimalnoj duini promenljive to je ilustrovano iduim primerom za ve
definisanu matricu A.
>> size(A)
ans =
3

>> B=[1 4 6 7 9 0];


>> length(B)
ans =
6
>> B=[1 4 6 9 0;2 3 4 9 1]
B=
1

>> length(B)
ans =
5
Komentari u Matlabu poinju sa % i sve nakon procentnog znaka se ignorie. Svi komentari
oznaeni su zelenom bojom.
>> %%%%%Ovo je komentar%%%
A=3
A=
3
Vidi se da je Matlab ignorisao komentar i da je izvrio naredbu koja je zadata odmah posle.
Kompleksni brojevi (i matrice) se uvode primenom predefinisanih konstanti i i j za imaginarnu
jedinicu ili kompleksnim rezultatom izraunavanja:
>> i
ans =
0 + 1.0000i
>> sigma=j*3
sigma =
0 + 3.0000i

>> rezultat=sqrt(-16)
rezultat =
0 + 4.0000i
>> whos sigma rezultat
Name

Size

Bytes Class

rezultat

1x1

16 double array (complex)

sigma

1x1

16 double array (complex)

Dvotaka (:) je veoma vana naredba jer pomou nje moemo generisati sekvencijalne podatke:
>> n=1:5
n=
1

Na ovaj nain definisan je niz, odnosno vrsta vektor koji ima 5 elemenata.
Promenljive se mogu izbrisati naredbom clear, na primer naredba clear x y brie promenljive x i
y iz Matlab-ovog komadnog radnog prostora. Ako se ukuca samo clear briu se sve trenutno
definisane promenljive. Ako elimo da obriemo sve to je ispisano u komandnom prozoru
potrebno je ukucati clc.

4. MATEMATIKE OPERACIJE I FUNKCIJE I OPERACIJE TIPA ELEMENT

Matlab izvrava osnovne algebarske operacije + (sabiranje), - (oduzimanje), * (mnoenje) i /


(deljenje). Takoe, postoje ve gotove standardne trigonometrijske funkcije: sin (sinus), cos
(kosinus), tan (tangens), asin (arkus sinus), acos (arkus kosinus), atan (arkus tangens) i atan2
(arkus tangens u etiri kvadranta), hiperbolne funkcije: sinh (sinus hiperbolikus), cosh (kosinus
hiperbolikus) i tanh (tangens hiperbolikus), transcendentne funkcije: log (prirodni logaritam),
log10 (logaritam sa bazom 10) i exp (eksponencijalna funkcija). Dostupne su i druge funkcije
kao to su: sign (signum funkcija), sqrt (kvadratni koren), det (determinanta), inv (inverzija), eig
(sopstvene vrednosti matrice), real (prikaz realnog dela kompleksnog broja), imag (prikaz
imaginarnog dela kompleksnog broja), abs (apsolutna vrednost), angle (daje argument

kompleksnog broja), round (zaokruivanje na najblii ceo broj), fix (zaokruivanje prema nuli),
flour (zaokruivanje prema - ) i ceil (zaokruivanje prema + ).
Matlab ima dve vrste matematikih funkcija i operacija: matrine i tipa element. Sabiranje,
oduzimanje i mnoenje matrica se vri po osnovnim pravilima linearne algebre. Naredba inv(A)
daje inverznu matricu matrice A i vai samo za kvadratne matrice. Naredbe eig, trace, rank i
norm su standardne matrine operacije.
Sabiranje, oduzimanje, mnoenje(.*), deljenje(./) i stepenovanje (.^) se izvode element sa
elementom. Sve operacije tipa element zahtevaju da argumenti imaju iste dimenzije. Kako
Matlab ne bi izvodio operacije kao matrine, odnosno kada elimo da se operacije izvode
element po element potrebno je staviti taku ispred operacije inae e Matlab javiti greku o
neslaganju dimezija. Sve trigonometrijske, hiperboline i transcendentne funkcije se izvode na
bazi element sa elementom. Za uglove Matlab operie u radijan modu.

5. NEKOLIKO REI O HELP-U


Matlab ima veoma dobro uraen help sistem (Help meni u Matlab komandnom prozoru vodi u
html sistem help-a).

Slika 5.1: Ulazak u help iz komandnog prozor

Slika 5.2: Prikaz Matlab-ovog help-a


Na slici 5.2 dat je prikaz Matlab-ovog help-a. Dovoljno je u tab-u search ukucati naziv
naredbe od interesa i sa desne strane prozora prikazae se detaljno objanjenje naredbe. Na
primer kada bismo ukucali whos dobili bismo sledee objanjenje:

Slika 5.3: Objanjenje naredbe whos u Matlab-ovom help-u

Meutim, i u komandnom promptu, korienjem naredbe help mogue je dobiti informacije o


svim grupama Matlab-ovih funkcija i struktura. Ako je poznato ime grupe funkcija, npr.
matlab\elfun elementarne matematike funkcije, ili ime funkcije za koje nam treba pomo, oni
se mogu navesti (kucamo help, pa naziv naredbe) i dobija se u komandnom prozoru tekstualna
pomo vezana za datu grupu, odnosno funkciju.
>> help elfun
Elementary math functions.
Trigonometric.
sin

- Sine.

sind

- Sine of argument in degrees.

sinh

- Hyperbolic sine.

asin

- Inverse sine.

asind

- Inverse sine, result in degrees.

asinh

- Inverse hyperbolic sine.

cos

- Cosine.

cosd

- Cosine of argument in degrees.

cosh

- Hyperbolic cosine.

acos

- Inverse cosine.

acosd

- Inverse cosine, result in degrees.

acosh

- Inverse hyperbolic cosine.

tan

- Tangent.

tand

- Tangent of argument in degrees.

tanh

- Hyperbolic tangent.

atan

- Inverse tangent.

atand

- Inverse tangent, result in degrees.

atan2

- Four quadrant inverse tangent.

atanh

- Inverse hyperbolic tangent.

sec

- Secant.

secd

- Secant of argument in degrees.

sech

- Hyperbolic secant.

asec

- Inverse secant.

asecd

- Inverse secant, result in degrees.

asech

- Inverse hyperbolic secant.

csc

- Cosecant.

cscd

- Cosecant of argument in degrees.

csch

- Hyperbolic cosecant.

acsc

- Inverse cosecant.

acscd

- Inverse cosecant, result in degrees.

acsch

- Inverse hyperbolic cosecant.

cot

- Cotangent.

cotd

- Cotangent of argument in degrees.

coth

- Hyperbolic cotangent.

acot

- Inverse cotangent.

acotd

- Inverse cotangent, result in degrees.

acoth

- Inverse hyperbolic cotangent.

Exponential.
exp
expm1
log

- Exponential.
- Compute exp(x)-1 accurately.
- Natural logarithm.

log1p

- Compute log(1+x) accurately.

log10

- Common (base 10) logarithm.

log2

- Base 2 logarithm and dissect floating point number.

pow2

- Base 2 power and scale floating point number.

realpow

- Power that will error out on complex result.

reallog

- Natural logarithm of real number.

realsqrt - Square root of number greater than or equal to zero.


sqrt

- Square root.

nthroot

- Real n-th root of real numbers.

nextpow2 - Next higher power of 2.


Complex.
abs

- Absolute value.

angle

- Phase angle.

complex

- Construct complex data from real and imaginary parts.

conj

- Complex conjugate.

imag

- Complex imaginary part.

real

- Complex real part.

unwrap
isreal

- Unwrap phase angle.


- True for real array.

cplxpair - Sort numbers into complex conjugate pairs.


Rounding and remainder.
fix

- Round towards zero.

floor

- Round towards minus infinity.

ceil

- Round towards plus infinity.

round

- Round towards nearest integer.

mod

- Modulus (signed remainder after division).

rem

- Remainder after division.

sign

- Signum.

Ako bismo eleli da dobijemo objanjenje o jednoj naredbi, na primer kucali bismo help, pa
naziv naredbe:
>> help size
SIZE Size of array.

D = SIZE(X), for M-by-N matrix X, returns the two-element


row vector D = [M, N] containing the number of rows and columns
in the matrix. For N-D arrays, SIZE(X) returns a 1-by-N
vector of dimension lengths. Trailing singleton dimensions
are ignored.
[M,N] = SIZE(X) for matrix X, returns the number of rows and
columns in X as separate output variables.
[M1,M2,M3,...,MN] = SIZE(X) returns the sizes of the first N
dimensions of array X. If the number of output arguments N does
not equal NDIMS(X), then for:
N > NDIMS(X), size returns ones in the "extra" variables,
i.e., outputs NDIMS(X)+1 through N.
N < NDIMS(X), MN contains the product of the sizes of the
remaining dimensions, i.e., dimensions N+1 through
NDIMS(X).
M = SIZE(X,DIM) returns the length of the dimension specified
by the scalar DIM. For example, SIZE(X,1) returns the number
of rows.
When SIZE is applied to a Java array, the number of rows
returned is the length of the Java array and the number of columns
is always 1. When SIZE is applied to a Java array of arrays, the
result describes only the top level array in the array of arrays.
See also length, ndims, numel.

6. GRAFIKI PRIKAZ SIGNALA U MATLAB-U

Matlab ima velike grafike mogunosti koje su pogodne za naunu i inenjersku primenu.
Osnovne naredbe za iscrtavanje signala su plot, loglog, semilogx, semilogy i polar. Sve naredbe
se koriste na isti nain, ali je razmera osa razliita. Naredba plot koristi linearnu podelu osa. Kod
loglog naredbe obe ose su logaritamske. U semilogx (semilogy), x(y) osa je u logaritamskoj
razmeri, a druga osa je linearna. Naredba polar koristi polarne koordinate.
Naredba plot(x,y) prikazuje vektor y u zavisnosti od vektora x. Vektori moraju biti iste duine.
Kako bismo definisali vektor x, odnosno x osu za koju crtamo signal, nain da se automatski
generie vektor sa poetnom vrednou, korakom i zavrnom vrednou je:
vektor=poetna_vrednost:korak:zavrna_vrednost
Korak moe da se izostavi, podrazumevani korak je 1. Za primer definisaemo x osu koja ide od
1 do 10 sa korakom 1:
>> x=1:10
x=
1

10

Na ovaj nain definisali smo vektor vrstu, odnosno niz od 10 elemenata. Matlab e raunati
funkciju y za svaki element niza x. Kada elimo da poveamo broj elemenata potrebno je samo
smanjiti korak ili poveati poetnu i zavrnu vrednost. U principu kada crtamo signale to vie
taaka izaberemo, funkcija e nam preciznije biti nacrtana.
>> x=1:0.1:10
x=
Columns 1 through 11
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000 2.0000
Columns 12 through 22
2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000 3.0000 3.1000
Columns 23 through 33

3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000 4.0000 4.1000 4.2000
Columns 34 through 44

4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000 5.0000 5.1000 5.2000 5.3000
Columns 45 through 55
5.4000 5.5000 5.6000 5.7000 5.8000 5.9000 6.0000 6.1000 6.2000 6.3000 6.4000
Columns 56 through 66
6.5000 6.6000 6.7000 6.8000 6.9000 7.0000 7.1000 7.2000 7.3000 7.4000 7.5000
Columns 67 through 77
7.6000 7.7000 7.8000 7.9000 8.0000 8.1000 8.2000 8.3000 8.4000 8.5000 8.6000
Columns 78 through 88
8.7000 8.8000 8.9000 9.0000 9.1000 9.2000 9.3000 9.4000 9.5000 9.6000 9.7000
Columns 89 through 91
9.8000 9.9000 10.0000

Na ovaj nain definisali smo niz od 91 element koji ide od 1 do 10 sa korakom 0.1.
Za primer crtanja izabraemo kvadratnu funkciju. Najpre emo definisati x osu.
>> x=-100:100;
Nakon definisanja x ose potrebno je zadati funkciju koju elimo da nacrtamo. Na primer neka to
bude kvadratna funkcija + 4 + 3. Ako je definiemo na sledei nain:
>> y=x^2+4*x+3
??? Error using ==> mpower
Matrix must be square.
dobijamo poruku o greci pri stepenovanju. Kao to je objanjeno u poglavlju 4, ako ne stavimo
taku ispred operacija ^,* i / Matlab e ove operacije tretirati kao matrine i poto ne moemo da
pomnoimo matricu dimenzija 191 sa matricom dimenzija 191 Matlab e prijaviti greku.
Kako bismo izbegli ovu greku potrebno je predstaviti funkciju y kao:
>> y=x.^2+4*x+3;
Nakon to smo definisali x i y moemo upotrebiti naredbu plot:
>> plot(x,y);
Kao rezultat prikazae nam se slika 6.1. Ako bismo eleli da obeleimo x osu i y osu i da damo
naslov ovoj slici napisali bismo sledee naredbe u m-fajlu:

x=-100:100;
y=x.^2+4*x+3;
plot(x,y);
xlabel('x osa');
ylabel('y osa');
title('Prikaz kvadratne funkcije');

Ako bismo eleli da menjamo boju ovoj funkciji, debljinu linije ili da prikaemo liniju pomou
kvadratia ili zvezdica nije potrebno pamtiti sve naredbe, dovoljno je otii u Matlab-ov help,
ukucati plot i videti koje se oznake koriste za specifikaciju linije.

12000

10000

8000

6000

4000

2000

-2000
-100

-80

-60

-40

-20

20

40

60

80

100

Slika 6.1: Grafiki prikaz kvadratne funkcije y

Na primer ako bismo eleli da prikaemo ovu funkciju preko crvenih zvezdica u naredbi plot
bismo kucali:
plot(x,y,'pr');

Takoe, ako bismo eleli da na slici imamo prikazanu "mreu" kucali bismo na kraju svih
naredbi grid on. Na kod bi izgledao ovako:

x=-100:100;
y=x.^2+4*x+3;
plot(x,y,'pr');
xlabel('x osa');
ylabel('y osa');
title('Prikaz kvadratne funkcije');
grid on

Kao rezultat dobili bismo sliku 6.2.


Prikaz kvadratne funkcije
12000

10000

8000

y osa

6000

4000

2000

-2000
-100

-80

-60

-40

-20

0
x osa

20

40

60

80

100

Slika 6.2: Prikaz kvadratne funkcije u crvenoj boji


Ako bismo eleli da nacrtamo dve razliite funkcije na istom grafiku, koristi se naredba hold on:
x=-100:100;
y=x.^2+16*x+10;
z=x.^2+3*x-3;
figure(1);
plot(x,y,'sc'),hold on
plot(x,z,'xm'),hold off
xlabel('x osa');
ylabel('y osa');
title('Prikaz dve kvadratne funkcije');
grid on

Prikaz dve kvadratne funkcije


12000

10000

8000

y osa

6000

4000

2000

-2000
-100

-80

-60

-40

-20

0
x osa

20

40

60

80

100

Slika 6.3: Prikaz dve kvadratne funkcije na istom grafiku


Kada imamo vie slika koje elimo da nacrtamo kako bismo ih obeleili koristimo naredbu
figure() i u zagradu stavljamo broj slike. Takoe, ako bismo eleli da nacrtamo na istoj slici dva
grafika koristi se naredba subplot(xyz), pri emu se sa x odreuje broj vrsta, sa y broj kolona, a
sa z pozicija samog grafika. Na primer:
x=-100:100;
y=x.^2+16*x+10;
z=x.^2+3*x-3;
figure(1);
subplot(121),plot(x,y,'sc');
xlabel('x osa');
ylabel('y osa');
title('Prikaz kvadratne funkcije y');
grid on
subplot(122),plot(x,z,'xm');
xlabel('x osa');
ylabel('y osa');
title('Prikaz kvadratne funkcije z');
grid on

Prikaz kvadratne funkcije y

Prikaz kvadratne funkcije z

10000

10000

8000

8000

6000

6000
y osa

12000

y osa

12000

4000

4000

2000

2000

-2000
-100

-50

0
x osa

50

100

-2000
-100

-50

0
x osa

50

100

Slika 6.4: Prikaz dva grafika na istoj slici

7. RELACIONI I LOGIKI OPERATORI

Standardni relacioni operatori, realizovani u Matlab-u, su: < (manje), <= (manje ili jednako),
> (vee), >= (vee ili jednako), == (jednako), ~= (razliito). U Matlabu, rezultat relacionog
operatora (poreenja) je tipa logical i moe biti: 0 (netano) ili 1 (tano). Dobijene vrednosti 0 i 1
tipa logical se mogu koristiti, bez eksplicitne konverzije u tip double, za izraunavanje sloenijih
numerikih izraza.
Takoe, treba imati u vidu da je matrica osnovna struktura podataka u Matlabu, pa je mogue
i meusobno relaciono poreenje matrica, gde je rezultat - matrica logikog tipa. Standardni
logiki operatori su: & (i), | (ili), ~ (negacija).

8. KONTROLNE STRUKTURE MATLABA


Tok izvrenja Matlab programa (skripta i funkcije) moe se regulisati primenom standardnih
kontrolnih struktura: for, while, if, switch.
Struktura for. Najjednostavniji nain korienja for strukture je:
for brojac = pocetna_vrednost:korak:krajnja_vrednost
blok komandi
end
Promenljiva brojac uzima vrednosti, poev od pocetna_vrednost sa korakom korak i zakljuno
sa krajnja_vrednost, a blok komandi se izvrava za svaku pojedinanu vrednost promenljive
brojac.
Primer:
for n = 0:10
x(n+1) = sin(pi*n/10);
end
U prethodnom primeru treba primetiti da se vodi rauna da ne postoji x(0), kao i da je ceo primer
samo demonstrativan i neoptimalan, jer se cela for konstrukcija moe zameniti direktnom
dodelom:
n = 0:10;
x = sin(pi*n/10);
Moe se uoiti da u prethodno prikazanom nainu koricenja, brojaka promenljiva preuzima
vrednosti iz automatski generisanog vektora, to je samo poseban sluaj korienja for strukture,
koja ima opti oblik:
for brojac = opseg_brojaca
blok komandi
end
Promenljiva opseg_brojaca moe biti bilo kakav vektor (ne samo automatski generisan):
for a = [1 5 -sin(pi/3) 0 -3]
disp(['Kroz ovaj prolaz vrednost promenjive a je: ' num2str(a)])
end
Kroz ovaj prolaz vrednost promenjive a je: 1
Kroz ovaj prolaz vrednost promenjive a je: 5
Kroz ovaj prolaz vrednost promenjive a je: -0.86603

Kroz ovaj prolaz vrednost promenjive a je: 0


Kroz ovaj prolaz vrednost promenjive a je: -3
U najoptijem sluaju, opseg_brojaa moe biti matrica, gde broja uzima kolonu po kolonu
matrice opseg_brojaca, za svaki prolaz kroz for petlju:
A = [1 2; 3 4];
for a = A
a
end
a=
1
3
a=
2
4
Ukoliko se u bloku komandi unutar for petlje naie na komandu break, prekidaju se iteracije
i nastavlja se izvrenje programa nakon for petlje (tanije, nakon end instrukcije koja zavrava
for strukturu). Nailazak na komandu continue, unutar for petlje, prekida izvravanje bloka
komandi za tekuu vrednost brojake promenljive i momentalno se prelazi na izvravanje bloka
komandi za narednu iteraciju (za narednu dedeljenu vrednost brojaa).

Struktura while. Opti oblik while strukture je:


while izraz
blok komandi
end
Izraz moe biti double ili logika promenljiva, kao i rezultat sloenijih numerikih, relacionih i
logikih operacija. Najece je dovoljno da logiki izraz bude skalaran, kada se while petlja
izvrava dok je logiki izraz taan, odnosno numeriki izraz razliit od nule. Npr:
q = pi
while q > 0.1
q = q/2
end
U optem slucaju, ukoliko je izraz matrica, while petlja se izvrava dok svi elementi numerike
matrice imaju realni deo razliit od nule, odnosno dok su svi elementi logike matrice tani. U
okviru bloka komandi unutar while strukture mogu se nai i komande break i continue, sa istim
efektom kao i kod for strukture.

Struktura if. Opti oblik if strukture je:


if izraz1
blok komandi 1
elseif izraz2
blok komandi 2
elseif izraz3
blok komandi 3
.
.
else
blok komandi else
end
Prilikom nailaska na if strukturu, testira se izraz1 i, ukoliko je taan, prelazi se na izvrenje
blok komandi 1, te nastavlja izvrenje programa nakon if strukture (nakon end instrukcije koja
zavrava if strukturu). Ukoliko izraz1 nije taan, prelazi se na testiranje izraz2. Ukoliko je on
taan, prelazi se na izvrenje blok komandi 2 i nastavlja izvrenje programa posle if strukture. I
tako redom testiranje narednih izraza se vri samo ukoliko nijedan prethodni nije zadovoljen,
sa finalnim izvravanjem bloka komandi iza else, ukoliko nijedan izraz iz if i svih elseif nije
tacan. Obratiti panju da je elseif jednoslona slubena re (ne else if). Opti oblik if strukture se
moe koristi u pojednostavljenoj formi, tj. delovi strukture sa elseif-ovima i else su opcioni.
Struktura switch. Opti oblik switch strukture je:
switch izraz
case vrednost1
blok komandi 1
case {vrednost2, vrednost3, ...}
blok komandi 2
.
.
otherwise
blok komandi otherwise
end
Izvrava se blok komandi iza case dela, za koji je tano da izraz ima navedenu vrednost (kao
vrednost1) ili bilo koju, od navedenih vie vrednosti (kao {vrednost1, vrednost2}). Ukoliko izraz
nije jednak nijednoj predvienoj case vrednosti, izvrava se blok komandi otherwise.Primetimo
da, za razliku od nekih drugih programskih jezika, ne postoje break komande izmedu case
delova. Takoe switch struktura je pomalo redundantna, s obzirom na kompletnost postojee if
strukture.

Zadaci za samostalan rad:


1
1. U komandnom prozoru Matlab-a uneti matrice = 6
2
1. Formirati matricu C=A+B.

3 4
2 1
9
i

=
1 5
3 4 8 .
9 1
5 6 7

2. Pogledati u Workspace-u sadraj promenljive C.


3. Prikazati sadraj promenljive C u komandnom prozoru.
4. Prikazati sve promenljive koje se trenutno koriste u Workspace-u.
5. Prikazati drugu kolonu i prvu vrstu matrice A i element matrice B koji se nalazi na drugom
mestu u treoj vrsti.
6. Prikazati dimenzije matrice C.
7. Obrisati sadraj komandnog prozora.
2. Otvoriti novi m-fajl i sauvati ga pod nazivom Vezba1.m u direktorijumu AU1 koji je
prethodno kreiran na Desktop-u.
1. Nacrtati funkciju x + 2x +3x+1. Proizvoljno izabrati opseg x ose. Obeleiti x i y osu, navesti
naslov slike, obojiti funkciju u zelenu boju.
2. Na istom grafiku nacrtati funkcije x + 8x + 6 i x + 4x + 5x + 1. Proizvoljno izabrati
opseg x ose. Obeleiti x i y osu, navesti naslov slike, obojiti funkcije u razliite boje.
3. Nacrtati funkcije sin(x), cos(x) i tan(x) na tri grafika na istoj slici, jednu ispod druge. Obeleiti
x i y osu, navesti naslov slike, obojiti funkcije u razliite boje.

Vous aimerez peut-être aussi