A MATLAB-ban, hasonlóan mint a C/C++ -ban csak függvények vannak, nincsenek eljárások. Egy függvény az alábbi módon néz ki:
function [a,b,c] = fgvnev(x,y,z)
Itt:
[a,b,c]: A visszatérési értékek listája. Ezek mindig szögletes zárójelek között vannak, lehet egy vagy több visszatérési érték is.
fgvnev : Ez a függvény neve. A függvény nevének NEM kell megegyeznie azzal az M-file nevével, amelyben van.
(x,y,z) : A formális paraméterek listája.
Ha egy függvény több értéket ad vissza, akkor azokat így lehet átvenni:
[a, b] = stat([1,2,3,4,5,6,7]);
Mint ahogy a típusok fejezetben már említettük, függvény referenciák segítségével függvényeket adhatunk át paraméterül, más függvényeknek. Ezeknek két fajtájuk van:
Az első segítségével indirekt függvényhívást hajthatunk végre. Például legyen a compute.m fájl a következő:
A második eset lehetőséget biztosít kifejezések, programok egyszerűsétésére. Az anonímus függvények törzse csak
egy egyszerű MATLAB utasítás vagy kifejezés lehet. Vegyük például a x = g * cos(omega * t) kifejezést, ahol t a változó, omega-t és g-t
pedig lekötjük. Ha egy másik függvénynek akarjuk ezt a kifejezést átadni, akkor az előző módszernél ideiglenesen létre kellene hozni egy M-fájl-t
amiben kiszámoljuk a kifejezést egy x-re, majd ezen a függvény referenciáját kell paraméterül adni. Ez azonban körülményes, az M-fájlra semmi szükségünk,
illetve g és omega konstansokat is le kell rögzíteni minden hívásnál.
Ha viszont anonímus függvényt írunk a kifejezésre és így adjuk paraméterül akkor az konstansokat egyszer kell rögzíteni és külön fájlt sem kell létrehozni.
Például:
Nemcsak matlabban írt függvényeket használhatunk, hanem korábban elkészített C programkönyvtárakat is betölthetünk. Ehhez a loadlibrary('shrlib','hfile') parancsot kell használni. Melynek első paramétere a függvénykönyvtár .dll fájlja, a második pedig a függvényeket tartalmazó .h header fájl neve. Például az libmx könyvtár betöltéséhez: