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

7.1.1. m-fajlovi

Fajlovi koji sadrže programski kod se nazivaju m-fajlovi. Postoje dve vrste m-fajlova: skript fajlovi i funkcijski fajlovi. Skript fajlovi ne uzimaju ulazne argumente niti vraćaju izlazne argumente. Funkcijski fajlovi mogu uzimati ulazne argumente ili vraćati izlazne argumente.
Da napravimo m-fajl kliknemo na File zatim biramo New i kliknemo na M-File iz padajućeg menija.
Pojaviće nam se MATLAB Editor/Debugger ekran. Ovdje kucamo naš kod, pravimo izmjene, itd. Kada završimo, kliknemo na File, u MATLAB Editor/Debugger ekranu i biramo Save As… . Izaberemo ime za fajl, napr., firstgraph.m i kliknemo na Save. Fajl mora biti sačuvan u direktoriju koji je u MATLAB search path-u.
Ako imamo bar dva fajla sa istim imenima, tada će onaj koji je prvi u MATLAB search path-u biti izvršen.
Da bismo otvorili m-file iz Command Window kucamo edit firstgraph i pritisnemo Enter/Return.

Ovdje je primjer malog skript fajla

% Script file firstgraph.
x = pi/100:pi/100:10*pi;
y = sin(x)./x;
plot(x,y)
grid

Analizirajmo sadržaj ovog fajla. Prva linija počinje sa znakom procenta %. To je komentar. Svi komentari se ignorišu od MATLAB-a. Oni se dodaju da poboljšaju čitljivost koda. U sljedeće dve linije kreiraju se nizovi x i y. Primijetimo da tačka-zarez završava obe komande. Ovo sprečava prikazivanje sadržaja oba vektora na ekranu. Niz x sadrži 1000 jednako razmaknutih brojeva u intervalu [π/100 10π] dok niz y sadrži vrijednosti sinc funkcije y = sin(x)/x u tim tačkama. Primijetimo da je upotrijebljen tzv. dot operator . prije operatora desnog dijeljenja/. Ovo govori MATLAB-u da izvede komponentsko dijeljenje dva niza sin(x) i x. Komanda plot kreira graf sinc funkcije pomoću tačaka generisanih u dve prethodne linije. Konačno, izvršava se komanda grid. Ovo dodaje rešetku grafu. Ovaj fajl pozivamo kucajući njegovo ime u Command Window i zatim pritisnemo Enter/Return

Ovdje je primjer jednog funkcijskog fajla

function [b, j] = descsort(a)

% Funkcija descsort sortira, u opadajućem redoslijedu, realni niz a.
% Drugi izlazni parametar j sadrzi permutaciju koja se koristi da se dobije
% niz b iz niza a.
 [b ,j] = sort(-a);
b = -b;

Ova funkcija uzima jedan ulazni argument, niz realnih brojeva, i vraća sortirani niz zajedno sa permutacijom koja se koristi da se dobije niz b iz niza a. Ovdje je upotrijebljena MATLAB ugrađena funkcija sort. Ova funkcija sortira brojeve u rastućem redoslijedu. Jednostavan trik primijenjen ovdje dozvoljava nam da sortiramo niz brojeva u opadajućem redoslijedu.

Da demonstriramo funkcionalnost razmatrane funkcije uzmimo

a = [pi –10 35 0.15];

[b, j] = descsort(a)

b =
         35.0000     3.1416      0.1500      -10.0000

j =
         3     1     4     2

Možemo izvršiti funkciju descsort bez izlaznih argumenata. U ovom slučaju informacija o permutaciji koja se koristi biće izgubljena

descsort(a)
ans =
             35.0000     3.1416      0.1500      -10.0000

Pošto nijedan izlazni argument nije iskorišten u pozivu funkcije descsort sortirani niz a je dodijeljen default varijabli ans.

Programiranje u Matlabu 1    <    Index    >    Inline funkcije i komanda feval