m-DATOTEKE

 
M-datoteke su obične tekstualne datoteke koje sadrže Matlabove naredbe (programe), te imaju nastavak "m". Postoje dvije vrste m-datoteka: skripte i funkcije (u užem smislu). Zajedničko im je sljedeće: 

Skripta se izvršava pozivom po imenu, bez prenošenja varijabli, a radi s varijablama iz (glavnog) radnog prostora. Može se donekle usporediti s glavnim programom u Fortranu. Za funkcije u užem smislu karakteristično je sljedeće:

Iako se funkcije mogu usporediti s potprogramima u Fortranu, postoji bitna razlika u tretiranju argumenata - razlika koja u najvećoj mjeri odredjuje filozofiju obaju sustava. U Matlabu se, naime, prenošenje varijabli u, te iz funkcije obavlja "po vrijednosti" (engl. "by value"), tj. kod poziva se ulazne varijable fizički kopiraju u radni prostor funkcije, a isto se dešava s izlaznim argumentima kod povratka. Funkcija, dakle, radi s kopijama varijabli, dok izvorne varijable ostaju netaknute. Posljedično, broj, kao ni tip, bilo ulaznih, bilo izlaznih argumenata funkcije u Matlabu nije fiksan, što značajno olakšava programiranje. Moguće je, na primjer, unutar funkcije ispitati broj i tip ulaznih argumenata i, ovisno o rezultatu, izvršiti određeni postupak, što su već elementi objektnog programiranja. U Fortranu se prenose samo adrese varijabli, tj. pokazivači, a ne i same vrijednosti (engl. prenošenje "by reference"). Posljedično, i broj i tip argumanata moraju se podudarati i fiksni su, no zato se Fortranski programi izvode jako brzo.

Kao primjer, navedimo (unutarnju) Matlabovu funkciju min. Ako je ulazni argument vektor (stupac ili redak) funkcija vraća njegov minimalni element: 

 

 

Ako je ulazni argument matrica, funkcija min nalazi minimalni element u svakom stupcu i sve zajedno ih vraća kao jedan vektor-redak: 

 

 

No, funkcija min može imati i dva izlazna argumenta, u kojem slučaju drugi argument vraća indekse nađenih minimalnih vrijednosti: