Академический Документы
Профессиональный Документы
Культура Документы
M-fajlovi
M-fajlovi su ASCII fajlovi (sa ekstenzijom .m) koji sadre niz komandi i funkcija
Matlaba. Ove funkcije i komande je mogue izvriti pozivom naziva/imena m-fajla,
nakon ega Matlab interpretira sadraj fajla. Dakle, m-fajlovi su izvorni fajlovi
programa za Matlab. Postoje dve razliite vrste M-fajlova, skriptovi funkcije.
1) Skriptovi
Skriptovi predstavljaju m-fajlove koji sadre samo niz naredbi Matlaba koje se
izvravaju redom kojim se pojavljuju u fajlu. Skriptovi ne prihvataju ulazne i ne
vraaju izlazne vrednosti. Koriste promenljive/varijable iz istog prostora kao i radno
okruenje (engl. workspace) Matlaba. Mogu stvarati nove promenljive koje nakon
zavretka izvravanja m-fajla ostaju dostupne u radnom okruenju. Skript moe
generisati i grafiku.
2) Funkcije
Funkcije predstavljaju m-fajlove koji imaju posebno zaglavlje u kome se deklarie
naziv/ime funkcije i ulazni argumenti i vrednosti koje funkcija vraa. Pri tome bi ime
funkcije trebalo biti isto kao i ime m-fajla. U okviru m-fajla je mogue deklarisati i
vie funkcija, ali su sve osim osnovne vidljive i dostupne samo iz m-fajla u kome se
nalaze.
functionizl_var=ime_funkcije(ul_var1,ul_var2,...)
gde su:
Ukoliko je potrebno pri pozivu dati neki argument koji se nee koristiti, tada se koristi
[].
Kontrola toka izvravanja m-fajla je vrlo vana, obzirom da je bez toga nemogue
implementirati bilo kakav algoritam. Postoji pet struktura za kontrolu toka
izvravanja: if, switch, for, while i break.
Struktura if
Sintaksa:
ifuslov1
naredba/naredbe
elseifuslov2
naredba/naredbe
else
naredba/naredbe
end
Sintaksa:
forn=1:10
naredba/naredbe
end
Komanda input
ime_promenljive=input(nekitekst)
Komanda disp
disp(ime_promenljive)
ili
disp(nekitekst)
Komanda fprintf
fprintf(nekitekst%znakkonverzijenekitekst,ime_promenljive)
Povremeno je, tokom rada, potrebno trajno sauvati podatke na hard disk odnosno
uitati ranije sauvane podatke sa diska. Kao i za veinu drugih aktivnosti u Matlabu
postoji vie naina da se to uradi. Ovde e se ukratko razmatrati naredbe/komande
save i load kojima se, iz komandnog prozora, ove aktivnosti realizuju na
najjednostavniji nain. Kao to je ve ranije reeno, ove naredbe se najee koriste
za uvanje (odnosno uitavanje) podataka iz radnog prostora (okruenja) Matlaba.
Kada izaemo iz programa sve to je bilo u radnom prostoru biva nepovratno
izgubljeno. Svaka nova sesija u Matlabu poinje sa praznim radnim prostorom.
saveime_fajla
>>saved:\dosije\podaci
loadime_fajla
>>loadd:\dosije\podaci
P R I M E R I:
Sledi primer korienja osnovnih naredbi za ulaz i izlaz. U editoru Matlaba upiimo
jednostavan program za unos broja indeksa i godine indeksa, saberimo te podatke i
ispiimo ih:
b=input('Unesitebrojindeksa:');
g=input('Unesitegodinuindeksa:');
disp(['Unetiparametri:b='num2str(b)',g='num2str(g)]);
disp(['Zbir='num2str(b+g)]);
Napisati m-skript fajl koji interaktivno od korisnika zahteva da sukcesivno upie svoje
ime, prezime i broj indeksa a zatim u jednom redu prikazuje sva tri podatka.
Reenje:
>>t=0:0.1:0.5;
>>sila=10*exp(t).*sin(2*t);
>>disp(t)
00.10000.20000.30000.40000.5000
>>disp(sila)
01.79763.18834.18304.80865.1038
>>disp(t,sila)
>>disp([t;sila])
00.10000.20000.30000.40000.5000
01.79763.18834.18304.80865.1038
sila
h=input('korak h= ');
x=0:h:2;
y=x.^2 - 2*x+1;
y1=sin(x);
plot(x,y,'r-.',x,y1,'g:<')
Primer za petlju:
for
Primer za for petlju:
fori=1:3
x(i)=i^2
end
%>>plot(x)
%uklanjanjesvihvarijabliizradnogokruzenja
clearall
%zatvaranjesvihformi(plotova)
closeall
%brisanje/ciscenjekomandnogprozora
clc
t=0:0.01:6;
x1=sin(pi*t);
x2=exp(t);
x3=0.1*t.*log(t+1);
%kreiramoformuukojojcemoprikazatinasefunkcije
figure(1)
plot(t,x1)
%zadrzimodatigrafikon/plotnaformi
holdon
%prikazemodrugufunkcijucrvenombojom
plot(t,x2,'r')
%prikazemotrecufunkcijucrnombojom
plot(t,x3,'k')
holdoff
%oznakezaapscisuiordinatu
xlabel('t')
ylabel('x(t)')
%nazivgrafikona/plota
title('Funckijesin(\pit),e^{t},0.1tln(t+1)')
%definisanjeopsegaunutarkojegcemoposmatratigrafikon/plot
axis([0522])