abc Matlab - elektronski priručnik
VII dio Dodaci /APPENDIX/ - 7.2. Programiranje u Matlabu 2

7.2.2. Funkcijske m–datoteke

M–datoteke vrlo su korisne i u stvaranju tzv. funkcijskih datoteka. To su datoteke kojima se nizom naredbi definiše nova programska funkcija koja se sprema u isti folder kao i obične m-datoteke (C:\matlabR12\work), ali se poziva drugačije nego obična m-datoteka. Njena sintaksa je:

function [izlazne varijable]=ime_funkcije(ulazne varijable)
naredbe
end

Objasnimo ukratko o čemu se ovdje radi. Neka funkcija u MATLAB-u kao rezultat ne mora dati samo jednu, nego i više vrijednosti. Zbog toga se sve te varijable moraju staviti u uglaste zagrade i međusobno razdvojiti zarezima. Takva se funkcija u radnom prostoru poziva na sljedeći način:

[izlazne varijable]=ime_funkcije(ulazne varijable)

PAŽNJA! Česta je greška da se prilikom poziva funkcije uopšte ne navedu, djelomično navedu ili redosljedno pogrešno navedu ulazne varijable. U takvim će slučajevima MATLAB odmah javiti grešku i neće izvršiti željenu funkciju. S izlaznim varijablama je malo drugačija situacija jer ako ne navedemo ime izlazne varijable, MATLAB će joj sam dodijeliti ime ans. No, problem nastaje ako želimo više izlaznih varijabli: ne navedemo li im imena, MATLAB će ispisati samo jednu od njih. Zato: oprez!

Ukoliko funkcija ima tačno jednu izlaznu varijablu, ona se ne mora stavljati u uglaste zagrade.

Ime funkcije mora biti jednako imenu funkcijske m-datoteke (bez ekstenzije). Dakle, ne smije se dogoditi da u datoteci imamo zapisano npr.

function y = kotangens(x)

a da funkcijsku datoteku nazovemo npr. kotan.m. Ako smo funkciju nazvali kotangens, onda i pripadnu funkcijsku m-datoteku moramo nazvati kotangens.m jer je u suprotnom pri njenom pozivu MATLAB neće izvršiti.

Sama funkcija može imati jednu ili više ulaznih varijabli. Neovisno o njihovom broju, moraju se navesti unutar okruglih zagrada. Ako ih je barem dvije, odvajaju se zarezima. Varijable, uopšte, mogu biti brojevi i matrice, s tim da MATLAB razlikuje šta je broj, a šta matrica pa se ne smije dogoditi da varijablu matričnog tipa prilikom poziva pozovemo kao varijablu brojčanog tipa.

Pogledajmo na primjeru kako stvoriti jednu ''novu'' funkciju u MATLAB-u.

Kako stvoriti jednu običnu m-datoteku    <    Index    >    Funkcijske m–datoteke - Primjer 1