Documente Academic
Documente Profesional
Documente Cultură
Osnove Matlab A
Osnove Matlab A
Osnove Matlab A
OSNOVE MATLABA
Zagreb, 2003.
SADRAJ
1.
2.
UVOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
POKRETANJE I ORGANIZACIJA MATLABA . . . . . . . . . . . . . . . . 2
2.1.
2.2.
3.
VARIJABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.
3.2.
3.3.
3.4.
3.5.
4.
Aritmetiki operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Relacijski operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Logiki operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Naredbe odluke i ponavljanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
19
20
21
Funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.1.
5.2.
5.3.
5.4.
5.5.
6.
Interne varijable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Eksterne varijable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Definiranje varijable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3.1. Vektori i matrice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3.2. Definiranje niza brojeva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3.3. Ekstrakcija dijela matrice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3.4. Polja cell-ova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3.5. Strukture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Brisanje varijabli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Naredbe za rad s diskom, kontolu ispisa i naredbe operacijskog sustava . . . 14
3.5.1. Spremanje varijabli na disk i njihovo uitavanje . . . . . . . . . . . . . . . . 14
3.5.2. Naredbe operacijskog sustava . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.5.3. Naredbe za kontrolu ispisa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Operacije u Matlabu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.1.
4.2.
4.3.
4.4.
5.
Pokretanje Matlaba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Organizacija Matlaba i strukture podataka . . . . . . . . . . . . . . . . . . . . . . . . . . 5
23
24
24
25
25
25
26
27
28
29
29
30
6.3.
6.4.
7.
Literatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Uvod
1.
UVOD
2.
2.1.
Pokretanje Matlaba
S
S
S
Prilikom startanja Matlab kratkotrajno prikazuje svoj znak prikazan slikom 2.1.
Gdje je naredba naziv naredbe za koju traimo sintaksu. Na primjer pomo za naredbu za crtanje
bi bila: help plot.
Ukoliko nam nije poznat specifini naziv naredbe, za pomo koristimo naredbu lookfor
i to tako da iza naredbe navedemo jednu kljunu rije koja oznaava akciju koju elimo
provesti. Primjerice, potrebno je oznaiti osi na grafikonu, a ne zna se naredba za oznaavanje osi.
U tom sluaju dovoljno je iza naredbe lookfor upisati pojam koji oznaava oznaku (label):
lookfor label.
Kao rezultat se dobije:
PLOTYY
XLABEL
YLABEL
ZLABEL
CLABEL
Za svaku od navedenih naredbi pommou help naredbe mogue je dobiti detaljnu sintaksu. Prema
tome za oznaavanje x-osi mogue je koristiti naredbu xlabel, za y-os naredbu ylabel itd.
Naredbe help i lookfor daju saeti prikaz sintakse naredbe i korisne su i iskusnim korisnicima
Matlaba. Detaljan prikaz svih naredbi i funkcija Matlaba raspoloiv je u Matlabovoj dokumentaciji
u Html i Pdf obliku. Do dokumentacije se dolazi iz Help izbornika odabirom opcije Matlab Help.
Spomenuti izbornik otvara prozor prikazan slikom 2.3.
Sl. 2.3.
On line dokumentacija sadri opis svih funkcija i alata koje korisnik ima na raspolaganju
u svojoj instalacijskoj verziji Matlaba. U lijevom dijelu prozora (sl. 2.3.) odabire se nain
navigacije po dokumentaciji, dok se u desnom dijelu prikazuje izabrani sadraj. Kao to je vidljivo,
navigacija kroz dokumentaciju mogua je preko sadraja, (Contents), Indeksa, pretraivanja po
kljunim rijeima (Search) ili odabirom demonstracijskih primjera. Odabirom jednog od naina
navigacije i odabirom pojma u navigacijskom prozoru, dolazi se do eljenog sadraja u desnom
prozoru.
2.2.
Sl. 2.5.
Svi podaci se temelje na matricama. Sadraj matrica mogu biti logiki, slovani (char), numeriki,
cell i neki drugi specijalni tipovi podataka ovisni o funkcijama koje ih koriste. Korisnik sam moe
definirati i vlastite tipove struktura. Podaci su uvijek pridrueni varijablama.
3.
VARIJABLE
2.
realne,
kompleksne,
simbolike,
polja cell-ova
strukture
lokalne,
globalne,
interne,
eksterne.
Varijable prema sadraju spadaju u skupinu ovisno kakve elemente sadre. Ukoliko su
elementi matrice realni i varijabla se moe nazvati realnom. Kompleksne varijable sadre
kompleksne brojeve iji je imaginarni dio razliit od nule, dok simbolike varijable sadre simbole
koji se ne interpretiraju numeriki. Simbolike varijable koriste se kao ulazne i izlazne varijable
kod simbolikog rauna, kao to je simboliko rjeavanje neodreenih integrala, algebarskih i
diferencijalnih jednadbi i slino.
Globalne varijable su one varijable koje su vidljive iz vie funkcija Matlaba. Varijabla
postaje globalna tako da se deklarira naredbom:
>> global ime_varijable
Sve funkcije koje imaju napisanu definiciju vidjet e varijablu ime_varijable odnosno moi e
dohvatiti njen sadraj. Lokalne su varijable sve one koje nisu globalne. Prema tome ako postoji
definirana varijabla u funkciji Matlaba, nakon izvrenja funkcije u worksapceu varijabla nee
postojati. Razlog za to je to se radi o lokalnoj varijabli i ona je vidljiva samo u funkciji gdje je
definirana.
Interne varijable su varijable koje definira sam Matlab, dok su eksterne varijable
predstavljaju varijable definirane od korisnika ili varijable koje su proizale kao rezultat
matematikih operacija i funkcija u Matlabu.
3.1.
Interne varijable
S realmin=2.225073858507202e-308
S realmax=1.797693134862316e+308 S
S
S
S
S
pi = 3.14159265358979
inf = 1/0
NaN = 0/0
flops
i, j
Varijabla flops sadri broj floating point operacija i moe se koristiti za mjerenje
3.2.
Eksterne varijable
Eksterne varijable su varijable definirane od korisnika ili varijable nastale kao rezultat
matematikih operacija i funkcija izvedenih u Matlabu. Ime varijable sastoji se od jednog do
najvie 19 alfanumerikih znakova (slova engleske abecede, brojke i _ (underscore)), a poinje
slovom. U imenu varijable se razlikuju velika i mala slova. To znai da na primjer cijev1 i Cijev1
predstavljaju imena dviju varijabli.
3.3.
Definiranje varijable
3
4%2i
7
b =
1.0000
2.0000
3.0000
4.0000 + 2.0000i
7.0000
Otvorena uglata zagrada znai poetak definicije vektora ili matrice. Retci unutar vektora odvajaju
se znakom toka-zarez, a kraj definicije vektora ili matrice je zatvorena uglata zagrada. Na kraju
naredbe nije stavljena toke-zarez, to je uzrokovalo ispis rezultata definicije vektora na ekran.
Za definiranje kompleksnog broja unutar vektora upotrijebljena je interna varijabla i koja
predstavlja imaginarnu jedinicu. Isti se rezultat moe postii da se umjesto znaka toka-zarez za
odvajanje redaka koristi tipka Enter. Matlab u tom sluaju ne daje komandni prompt sve dok se
ne zatvori uglata zagrada.
Matrica se definira na slian nain kao vektor, osim to uz znakove za odvajanje redaka
treba dodati i znakove za odvajanje stupaca. Stupci se odvajaju praznim mjestom (space) ili
zarezom. Elementi matrice se unose po retcima, poevi od prvog.
Primjer:
Naredba:
c=[3 2 1; 7 8 9; 4 5 6; 3 4 2]
daje kao rezultat matricu:
c =
3
7
4
3
2
8
5
4
1
9
6
2
whos
Name
a
b
c
Size
1x1
5x1
Bytes
8
80
Class
double array
double array (complex)
4x3
96
10
double array
2.5000
3.0000
Naredbom u primjeru stvoren je redni vektor od 11 elemenata (dimenzije 1x11) ija je najmanja
vrijednost 0, najvea 5, a prirast elemenata iznosi 0.5.
11
Oblik naredbe
d1=[var_min:var_max]
stvara redni vektor iji su elementi aritmetiki niz s poetnom vrijednou var_min, konanom
vrijednou var_max i razlikom meu susjednim elementima niza jednakom 1.
Nizovi brojeva se jo mogu stvoriti s dvije funkcije:
d2=linspace(min,max,br_toc)
d3=logspace(n1,n2,br_toc)
Funkcija linspace stvori aritmetiki niz iji je prvi element jednak prvom argumentu funkcije
(min), zadnji element je jednak drugom argumentu funkcije (max), a broj elemenata niza odreen
je treim argumentom funkcije br_toc.
Primjer:
d2=linspace(1,-1,5)
d2 =
1.0000
0.5000
0
-0.5000
-1.0000
Poetna vrijednost niza je 1, konana -1 i niz mora sadravati 5 elemenata.
Funkcija logspace tvori logaritamski niz koji sadri broj elemenata odreen treim argumentom
funkcije (br_toc), dok je poetna vrijednost niza odreena iznosom 10n1, gdje je n1 prvi argument
funkcije, dok konana vrijednost niza odgovara 10n2, gdje je n2 drugi argument funkcije. Elementi
tako stvorenog vektora imaju logaritamsku raspodjelu.
Primjer:
d3=logspace(-1,2,7)
d3 =
0.1000
0.3162
1.0000
3.1623
10.0000
31.6228
100.0000
Polje d3 iz prethodnog primjera ima poetnu vrijednost 0.1 (to odgovara 10-1), konanu
vrijednost 100, a sadri 7 elemenata rasporeenih logaritamski.
12
navesti samo broj stupca koji se eli, dok se adresiranje svih stupaca matrice iza zareza unosi znak
dvotoke umjesto intervala.
Primjer:
c =
3
7
4
3
2
8
5
4
1
9
6
2
c(1:3,2:3)
ans =
2
8
5
1
9
6
c(:,2)
c(3,:)
ans =
ans =
c(:,1:2)
ans =
2
8
5
4
6
3
7
4
3
2
8
5
4
2]
[3]
'pero'
[7]
'eustahije'
[4]
5]
U navedenom primjeru, polje xx sadri numerike podatke kao i polja karaktera. Adresiranje
pojedinog elementa polja izvodi se na isti nain kao kod matrice, samo to se koriste vitiaste
umjesto uglatih zagrada. Npr. podatak pero nalazi se u prvom retku i etvrtom stupcu polja xx.
Do tog se podatka moe doi naredbom:
xx{1,4}
13
3.3.5. Strukture
Strukture podataka omoguuju kompaktnije zdruivanje podataka koji trebaju pripadati
odreenoj cjelini. Strukture nastaju kao rezultati odreenih funkcija Matlaba, ili definiranjem od
strane korisnika.
Struktura se moe definirati naredbom:
S = STRUCT('field1',VALUES1,'field2',VALUES2,...)
gdje su:
field
values -
Struktura a3 sadri dva polja: polja imena koje sadri polje cell-ova i polje brojevi koje sadri
rednu matricu. Adresiranje pojedinog dijela strukture vri se na nain da se iza imena strukture
stavi toka i ime polja, a elementi unutar polja se adresiraju na nain kako je to ve za dani tip
podataka odreeno. Prema tome ispis polja imena iz strukture a3 dobije se naredbom:
a3.imena
ans =
'pero'
'eustahije'
'brzic'
'janko'
Ispis elementa eustahije iz polja imena strukture a3 koji se nalazi u prvom retku i drugom stupcu
polja, dobit e se naredbom:
>> a3.imena{1,2}
ans =
eustahije
Poto je polje imena tipa cell, elementi unutar njega adresiraju se pomou vitiastih zagrada.
Promjena sadraja pojedinog elementa strukture postie se tako da se eljeni element adresira i
pridrui mu se nova vrijednost.
3.4.
Brisanje varijabli
Brisanje varijable iz radnog prostora Matlaba postie se naredbom clear. Naredba clear
bez argumenata brie sve varijable iz radnog prostora. Za brisanje samo odreenih varijabli
potrebno je iza naredbe navesti listu varijabli koje se ele obrisati. Brisanjem varijabli oslobaa se
zauzeti radni prostor (memorija raunala).
14
Primjer:
clear a b c
3.5.
save ime_datoteke var1 var2 var3 - u datoteku ime_datoteke spremaju se samo varijable var1,
var2 i var3.
Podaci zapisani u datoteku na ovaj nain su u binarnom Matlab formatu. Ukoliko se ele zapisati
tako da ih moe proitati bilo koji program koji ne podrava Matlabov format zapisa podataka
15
16
type ime_datoteke.
Brisanje cjelokupne datoteke sa diska postie se naredbom
delete ime_datoteke.
Izvoenje bilo koje naredbe operacijskog sustava bez izlaska iz Matlaba postie se tako da se na
komandnom promptu Matlaba upie usklinik, a iza njega naredba operacijskog sustava.
Na primjer:
!md vjezba
Zbog usklinika se naredba md vjezba proslijeuje operacijskom sustavu koji e (ako se radi o
DOS-u) u tekuem direktoriju otvoriti poddirektorij vjezba.
Opis
format short
format long
format short e
format long e
format hex
Heksadecimalni zapis
format bank
format rat
Primjer
0.2000
0.20000000000000
2.0000e-001
2.000000000000000e-001
0.20
1/5
0.2 ---------> +
format +
format compact
format loose
17
Kod eksponencijalnog zapisa slovo e oznaava brojku 10, a broj iza nje eksponent broja 10.
Prema tome vrijedi: 2.0000e-1 = 2.010-1.
Brisanje sadraja Matlabova komandnog prozora (ne varijabli iz radnog prostora), postie se
naredbom clc.
4.
18
Operacije u Matlabu
Aritmetiki operatori,
Relacijski operatori,
Logiki operatori,
Naredbe odluke i ponavljanja,
Funkcije,
Simulink.
4.1.
Aritmetiki operatori
Operator
Opis
Primjer
1.
( )
a*(b+c)
2.
a
a.
3.
^
.^
Potenciranje
Potenciranje meu elementima matrice
a^3
a.^b
4.
*
.*
/
\
./
a*b
a.*b
b/a
b\a
b./a
5.
+
-
Zbrajanje
Oduzimanje
a+b
a-b
Prema tablici, najvii prioritet (br. 1.) imaju zagrade, a najnii zbrajanje. Operacije unutar izraza
19
se izvravaju poevi od najvieg prioriteta prema najniem, a izrazi istog prioriteta izvravaju se
od lijeva prema desno.
Primjer: 11+a(x+y)^3*2
redosljed operacija: 1.
2.
3.
4.
5.
rez=x+y
rez=rez^3
rez=a*rez
rez=rez*2
rez=11+rez
Potenciranje matrice mogue je izvesti samo kod kvadratnih matrica, dok potenciranje meu
elementima matrica postavlja potrebu da matrice budu istih dimenzija, ali ne moraju nuno biti
kvadratne.
Mnoenje matrica provodi se po zakonima mnoenja matrica, to znai da matrice moraju imati
odgovarajue dimenzije. Dijeljenje matrica odgovara mnoenju inverznom matricom (odnosno
pseudo inverznom matricom kod nekvadratnih matrica). Desno dijeljenje matrica:
x=b/A daje rjeenje jednadbe x*A=b, dok
lijevo dijeljenje
x=A\b daje rjeenje jednadbe A*x=b.
Ukoliko je kod mnoenja jedan od operanada skalar, tad ne postoje ogranienja na dimenzije
matrice, a kao rezultat se dobije matrica iji je svaki element pomnoen navedenim skalarom.
Mnoenje, dijeljenje i potenciranje meu elementima matrica zahtijeva da matrice budu istih
dimenzija, osim ukoliko je jedan od operanada skalar.
Element rjeenja kod mnoenja meu elementima matrica dobije se kao
c(i,j)=a(i,j)*b(i,j) i=1,...m, j=1,...n, kod matrica dimenzje mxn.
Za uspjeno zbrajanje i oduzimanje matrica matrice moraju biti istih dimenzija ili jedan od
operanada mora biti skalar. U sluaju zbrajanja skalara i matrice rezultat je matrica iji svaki
element odgovara sumi elementa poetne matrice i skalara.
4.2.
Relacijski operatori
Relacijski operatori su operatori odnosa meu dvjema varijablama, a kao rezultat daju
logiku varijablu. Logika varijabla je realna varijabla koja ima dvije mogue vrijednosti i to: nulu
ako operator nije zadovoljen i jedinicu ako operator je zadovoljen. Ovakav nain definiranja
logike varijable omoguuje da se rezultat relacijskih operatora direktno koristi kako u logikim
tako i u aritmetikim izrazima. Relacijski operatori mogu se primijenjivati meu matricama i meu
skalarima, odnosno izmeu matrice i skalara.
20
Kod primjene relacijskih operatora izmeu dviju matrica, matrice moraju biti istih
dimenzija, operator se primijenjuje meu odgovarajuim elementima matrice, a rezultat je matrica
istih dimenzija kao matrice izmeu kojih je operator primijenjen. Operator izmeu matrice i
skalara daje kao rezultat matricu dimenzija jednakih ulaznoj matrici, a dobije se primjenom
operatora izmeu skalara i svakog elementa matrice. Matlab podrava slijedee operatore:
Operator
Opis
Primjer
<
Manje
a<b
<=
manje i jednako
a<=b
>
vee
a>b
>=
vee i jednako
a>=b
==
jednako
c==2
~=
razliito
a~=c
Primjer:
a'
1 2 3
4 5 6
b'
3 2 1
6 5 4
a<=b
ans =
1
1
4.3.
a<=3
1
1
0
0
ans =
1
0
a~=b
1
0
1
0
ans =
1
1
0
0
1
1
Logiki operatori
Logiki operatori primijenjuju se izmeu logikih varijabli i kao rezultat daju logiku
varijablu. Logiki se operatori mogu primijeniti i izmeu realnih varijabli, no tad se realne varijable
interno pretvaraju u logike prije samih operacija i to na nain da realna 0 prelazi u logiku 0
(.false.), a svi ostali realni brojevi prelaze u logiku jedinicu. Ukoliko su varijable meu kojima
se provode logiki operatori matrice ili kombinacije matrica i skalara, vrijede ista pravila kao i kod
relacijskih operatora. To znai da matrice moraju biti istih dimenzija, rezultantna matrica je
rezultat operacija meu elementima matrica, kod operacija izmeu skalara i matrica elementi
rezultantne matrice su rezultat operacija izmeu skalara i odgovarajueg elementa matrice.
Logiki operatori raspoloivi u Matlabu prikazani su tablicom.
Opis
Primjer
&
logiko I
a&b
logiko ili
a|b
~a
xor
xor(a,b)
21
Logiki operatori su istog prioriteta, ali im je prioritet vii od relacijskih operatora. Kod izraza
logikih operatora, odnosno mijeanih izraza logikih relacijskih i aritmetikih operatora
dozvoljeno je koristiti zagrade za tono odreivanje prioriteta izvoenja.
Primjer (za matrice a i b iz prethodnog primjera)
a<=2&b==3
ans =
1
0
0
0
~(b>=3)
0
0
ans =
0
0
a&b
1
0
1
0
ans =
1
1
1
1
1
1
Poto su a i b realne matrice sa svim elementima razliitim od nule, rezultat & operatora izmeu
njih je matrica iji su svi elementi jedinice.
4.4.
22
moraju nuno postojati u naredbama odluke. Naredbe if, elseif, else i end predstavljaju kljune
rijei naredbi odluke i odjeljuju blokove naredbi koji se u pojedinom sluaju izvode. Logiki izraz
je skalarni izraz logikih i relacijskih operatora ili logika skalarna varijabla. Ukoliko je logiki
izraz iza naredbe if istinit, u tom sluaju se izvode naredbe koje slijede u retcima izmeu naredbi
if i elseif i nakon toga se perskau sve naredbe do naredbe end. Ako izraz nije istinit, ispituje se
izraz iza elseif naredbe (ako ona postoji). Istinitost toga logikog izraza omoguuje izvoenje
bloka naredbi izmeu elseif i slijedee kljune naredbe bloka odluke i odlazak na naredbu end.
Nezadovoljenje niti jednog logikog uvjeta unutar naredbi odluke uzrokuje izvoenje naredbi iza
naredbe else i odlazak na naredbu end.
Primjeri:
if a>=b & a<c
a=0;
end
Drugi nain ostvarenja petlje ponavljanja je naredbom while. Sintaksa naredbe je slijedea:
while varijabla,
naredbe;
end
Petlja se izvrava sve dok je vrijednost varijable razliita od nule, tj. logika jedinica.
5.
23
Funkcije
interne funkcije,
funkcije u toolbox-ima,
funkcije definirane od korisnika.
Porijeklo funkcije moe se odrediti naredbom which iza koje se upie ime funkcije. Ako
je funkcija interna, matlab to i napie, dok za funkcije iz toolbox-ova i definirane od korisnika
ispie mjesto na disku gdje je smjetena. Za upotrebu funkcija njihovo porijeklo nije bitno, jer se
sve pozivaju na slian nain:
ime_funkcije(arg1,arg2,...argn).
Ovisno o funkciji, u zagradi se navodi jedan ili vie argumenata, od kojih svaki mora biti ili
konstanta ili varijabla definirana u workspace-u. Na taj se nain mogu pozvati sve funkcije koje
spadaju u grupu internih funkcija matlaba ili su spremljene na disku raunala u direktoriju koji je
naveden u Matlabovom putu pretraivanja ili su smjetene u tekuem direktoriju.
Definirani put pretraivanja moe se dobiti naredbom path.
Ukoliko se eli dodati novi direktorij u put pretraivanja, potrebno je provesti slijedee naredbe
Matlaba:
p=path;
path(p,novi_put);
Prva naredba postojei put pretraivanja pridruuje varijabli p. Druga naredba definira novi put
pretraivanja tako da starom putu iz varijable p doda novi put pretraivanja definiran stringom
novi_put. Definirani put pretraivanja ostaje aktivan do izlaska iz matlaba. Ukoliko se taj put
eli trajno pohraniti u raunalo, potrebno je navedene naredbe dodati u startup.m proceduru u
direktoriju gdje je instaliran Matlab.
Broj i vrsta raspoloivih funkcija u Matlabu ovisi o broju instaliranih toolbox-ova. No, ve
i standardni toolboxovi sadre velik broj funkcija meu kojima moemo izdvojiti samo neke kao
to su: Elementarne matematike funkcije, Funkcije za obradu vektora i matrica, Funkcije za
obradu stringova i funkcije za rad s polinomima. U ovoj skripti e biti spomenute samo osnovne
funkcije, a sintaksu i namjenu ostalih korisnik moe saznati iz matlabova helpa.
5.1.
24
funkcije na matricu, kao rezultat e dati matricu istih dimenzija kao to je matrica argumenta iji
su elementi rezultat primjene funkcije na pojedini element matrice argumenta.
5.1.1. Trigonometrijske i ciklometrijske funkcije
Domena i kodomena funkcija je skup kompleksnih brojeva. Sintaksa i opis funkcija dani
su tablicom:
Funkcija
Sintaksa
Opis
sin
y=sin(x)
cos
y=cos(x)
tan
y=tan(x)
asin
y=asin(x)
acos
y=acos(x)
atan
y=atan(x)
atan2
phi=atan2(y,x)
Sintaksa
Opis
exp
y=exp(x)
log
y=log
log10
y=log10
sinh
y= sinh(x)
cosh
y=cosh(x)
tanh
y=tanh(x)
asinh
y=asinh(x)
acosh
y=acosh(x)
atanh
y=atanh(x)
25
Sintaksa
Opis
abs
y=abs(x)
sign
y=sign(x)
Signum funkcija
round
y=round(x)
fix
y= fix(x)
ceil
y=ceil(x)
floor
y=floor(x)
angle
y=angle(x)
real
y=real(x)
imag
y=imag(x)
conj
y=conj(x)
rem
y=rem(x,y)
sqrt
y=sqrt(x)
5.2.
Grupu funkcija za obradu vektora i matrica predstavljaju funkcije iji su argumenti vektori
ili matrice, a kao rezultat daju logiku varijablu, ili vektor ili matricu razliitih dimenzija od ulazne
matrice, odnosno matricu indeksa elemenata argumenta koji zadovoljavaju dani kriterij. To su
funkcije za stvaranje matrica, relacijske i logike funkcije nad matricama, te funkcije za
odreivanje razliitih veliina karakteristinih za matrice i vektore.
26
dimenziju izlazne kvadratne matrice. Ako su funkcije pozvane s 2 argumenta, oni odreuju
broj redaka i broj stupaca izlazne matrice. Funkcije za definiranje matrica su prikazane
tablicom:
Funkcija
Sintaksa
Rezultat funkcije
zeros
y=zeros(m)
y=zeros(m,n)
ones
y=ones(m)
y=ones(m,n)
eye
y=eye(m)
y=eye(m,n)
rand
y=rand(m)
y=rand(m,n)
randn
y=rand(m)
y=rand(m,n)
Sintaksa
Opis funkcije
any
y=any(x)
all
y=all(x)
find
y=find(log_iz)
27
Funkcija
Sintaksa
Opis funkcije
isnan
y=isnan(x)
isinf
y=isinf(x)
finite
y=finite(x)
isempty
y=isempty(x)
exist
m=exist(ime)
Sintaksa
Rezultat funkcije
min
y=min(x)
Minimum vektora x
max
y=max(x)
Maksimum vektora x
mean
y=mean(x)
median
y=median(x)
Median vektora x
std
y=std(x)
Standardna devijacija
cov
y=cov(x)
Kovarijanca vektora
sum
y=sum(x)
cumsum
y=cumsum(x)
Sintaksa
Rezultat funkcije
diff
y=diff(x)
28
y(i)=x(i+1)-x(i)
prod
y=prod(x)
cumprod
y=cumprod(x)
sort
y=sort
Sintaksa
Rezultat funkcije
trace
y=trace(x)
rank
y=rank(x)
Rang matrice
det
y=det(x)
Determinanta matrice
eig
y=eig(x)
poly
y=poly(x)
diag
y=diag(x)
inv
y=inv(x)
rot90
y=rot90(x)
fliplr
y=fliplr(x)
flipud
y=flipud(x)
triu
y=triu(x)
tril
y=tril(x)
5.3.
29
Sintaksa
Rezultat funkcije
blanks
s=blanks(n)
findstr
x=findstr(s1,s2)
isstr
x=isstr(s1)
lower
s=lower(s1)
upper
s=upper(s1)
strcat
s=strcat(s1,s2,s3)
num2str
s=num2str(x)
5.4.
Polinomi se u matlabu prikazuju kao redni vektori kod kojih prvi element predstavlja
koeficijent uz najviu potenciju vektora, dok posljednji koeficijent predstavlja koeficijent uz nultu
potenciju vektora.
Prim:
Polinom: x4+3x2+2x
u Matlabu se opisuje vektorom:
[1 0 3 2 0].
Prema tome, broj elemenata vektor mora biti za jedan vei od reda polinoma.
30
Funkcija
Sintaksa
Rezultat funkcije
roots
y=roots(x)
poly
x=poly(y)
conv
x=conv(m,n)
deconv
[q,r] = deconv(b,a)
polyder
y=polyder(x)
polyfit
p=polyfit(x,y,n)
5.5.
M funkcije
31
izlazne varijable postavlja definicija izlaznog vektora. Na primjer vektor od 3 izlazne varijable
imao bi oblik:
[iz1,iz2,iz3].
Iza imena izlazne varijable slijedi znak jednakosti i ime funkcije (isto kao ime datoteke u koju se
funkcija sprema), a zatim u okruglim zagradama slijedi popis ulaznih varijabli (jedne ili vie) koje
e sluiti kao argumenti funkcije kod njenog poziva. U novom retku slijedi jedan ili vie redaka
komentara s opisom funkcije. Komentar poinje znakom %. Komentar neposredno iza definicije
funkcije prikazuje se kod naredbe help za tu funkciju. Iza toga slijedi niz naredbi i operatora
matlaba kojima se na temelju ulaznih varijabli odreuje izlazna. Izlaznoj varijabli mora u funkciji
biti pridruena vrijednost.
M funkcija se poziva iz komandnog prozora Matlaba ili iz druge funkcije tako da se napie
njeno ime, a u zagradi se navedu potrebne vrijednosti ulaznih funkcija.
6.
32
Matlab omoguuje grafiki prikaz rezultata, a osim toga posjeduje i niz funkcija za opis
slike, osi i prikazanih krivulja. Matlabom je mogue crtati dvodimenzionalne i trodimenzionalne
grafike prikaze.
6.1.
Za crtanje dvodimenzionalnih grafikih prikaza koriste se naredbe plot, bar, stairs i stem.
Naredba plot spaja susjedna toke grafikog prikaza ravnom linijom. Bar daje stupasti prikaz,
dok se kod stairs prikaza dobije prikaz slian rubno obrisu stupastog prikaza (bez tijela tapia
toke povezane horizontalnim i vertikalnim linijama). Stem nain prikaza svaki podatak prikazuje
vertikalnom linijom ija duina odgovara iznosu podatka, a na vrhu linije se nalazi krui. Sintaksa
i opcije svih etiriju naredbi je ista pa e biti prikazana samo za naredbu plot.
Sintaksa naredbe je:
plot(x,y,opcije).
Ukoliko se vektor x i string opcija izostave, tada se prikazuju toke vektora y u ovisnosti o
njihovom rednom broju. Ako su prisutni i vektor x i vektor y, tada vektori tvore niz ureenih
parova toaka. Vektori x i y moraju imati isti broj redaka. Ako je y matrica umjesto vektora, koja
ima isti broj redaka kao vektor x, naredba plot crta po jednu krivulju za svaki stupac vektora y.
Opcijama se odreuje boja i tip linije, prema slijedeoj tablici:
Oznaka
Boja
Oznaka
Tip linije
uta
puna linija
ljubiasta
tokasta linija
svjetlo plava
-.
toka crta
crvena
--
isprekidana
zelena
plava
bijela
crna
33
6.2.
Funkcija
clf
grid
zoom
hold
Sve naredbe iz tablice odnose se na aktivni grafiki prozor. Naredbe grid, zoom i hold kod prvog
poziva postavljaju svojstvo koje kontroliraju, a kod drugog poziva ga ponotavaju. Dodavanjem
opcije on (grid on) iza naredbe, svojstvo se uvijek postavlja, a dodavanjem naredbe off svojstvo
se uvijek uklanja.
Otvaranje novog grafikog prozora postie se naredbom figure, dok naredba figure(broj)
aktivira grafiki prozor iji je broj upotrebljen kao argument.
Crtanje vie koordinatnih sustava unutar istog grafikog prozora postie se naredbom subplot.
Sintaksa naredbe subplot:
subplot(n,m,i), plot(...).
Argumenti n i m odreuju broj redaka i broj stupaca u koje e koordinatni sustavi biti posloeni,
dok broj i odreuje broj aktivnog elementa u koji naredna naredba plot crta.
Primjer:
subplot(2,1,1),plot(x,y)
subplot(2,1,2),plot(x1,y1)
Prva naredba subplot odreuje da e se koordinatni sustavi poredati u 2 retka i jednom stupcu,
i da je aktivan prvi od njih. U taj se koordinatni sustav crta krivulja odreena vektorima x i y.
Druga subplot naredba odreuje da je aktivan drugi koordinatni sustav (koordinatni sustav u
drugom retku) i u njega se crta krivulja odreena vektorima x1 i y1.
6.3.
Grafikim prikazima u Matlabu mogue je dodati naslov, oznake osi, tekst unutar
grafikog prikaza i legendu. Za to postoje slijedee naredbe:
title (string)
xlabel(string)
ylabel(string)
zlabel(string)
gtext( string)
legend(str1',str2',str3')
6.4.
Za trodimenzionalni prikaz potrebno je definirati dva vektora dimenzija nx1 i mx1 i jednu
matricu dimenzija nxm. Na taj se nain dobije skup toaka odreenih ureenim trojkama, koje ine
plohu. Crtanje trodimenzionalnih grafikih prikaza izvodi se naredbom mesh.
Sintaksa naredbe je:
mesh(x,y,z).
Rezultat prikaza je povrina u trodimenzionalnom koordinatnom sustavu, koja je za svaku
kombinaciju toaka iz x-y ravnine odreenih vektorima x i y definirana vrijednou na z osi
definiranom matricom z.
7.
Literatura
Engineers toolkit, The Benjamin/Cummings Publishing Company, Inc. Redwood City, USA
1995.,
Hanselman D, Littlefield B.: Mastering Matlab - A Comprehensive Tutorial and Reference,
Prentice Hall, Upper Saddle River, 1996.
http://www.yale.edu/secf/software/matlab/matlab-primer.html