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
|