You are on page 1of 7

Skript datoteke

Skript datoteka je niz Matlab-ovih komandi snimljenih kao zaseban program. Njene
komande se izvravaju redosledom kojim su navedene, kao da su upisane u komandni prozor.
Ukoliko skript datoteka ima komandu za izlaz, izlaz se prikazuje u komandnom prozoru. Mogu
se preureivati neogranien broj puta. Mogu se pisati u bilo kom editoru i zatim gotove preneti u
Matlab-ov prozor Editor. Pri snimanju dobijaju nastavak .m
Pravljenje, snimanje i izvravanje skript datoteka
Prozor za pisanje skript datoteka otvara se iz menija FileNewM-file.

Komande se piu red po red, pritiskom na Enter. Matlab automatski dodeljuje broj reda.
Datoteka mora biti zapamena da bi se mogla pokrenuti. To se radi iz menija FileSave As,
posle ega se bira direktorijum u kome e se snimiti datoteka.
Datoteka se izvrava upisivanjem njenog imena u komandni prozor i pritiskom na Enter,
ili pritiskom na ikonicu Run u Editoru. Da bi Matlab mogao da pokrene skript datoteku,
prethodno je mora pronai, to znai da datoteka mora biti u tekuem direktorijumu ili na putanji
za pretraivanje. Putanja tekueg direktorijuma prikazuje se u padajuij listi Current Directory u
komandnom prozoru. Drugi nain menjanja tekueg direktorijuma prua komanda cd u
komandnom prozoru.
Promenljive definisane u komandnom prozoru prepoznaju se i u skript datoteci i obrnuto.
Takve promenljive se nazivaju globalne.
Unoenje podataka u skript datoteku
Postoje tri naina za dodeljivanje vrednosti promenljivoj:
1. Promenljiva je definisana i dodeljena joj je vrednost u skript datoteci

Iz komandnog prozora se datoteka pokree navoenjem njenog imena, uz promenu tekueg


direktorijuma:
>> primer1
prosek_bodova =
78.6667
>>
2. Promenljiva je definisana i dodeljena joj je vrednost u komandnom prozoru:
U ovom sluaju, treba prvo ispraviti skript datoteku Primer1 i izbrisati redove u kojima se daju
vrednosti promenljivama, tj. ostaviti samo red za izraunavanje prosene vrednosti:
%primer unosenja podataka%
prosek_bodova=(ucenik1+ucenik2+ucenik3)/3
U komandnom prozoru emo zadati vrednosti promenljivama i pokrenuti izvravanje datoteke:
>> ucenik1=87;
>> ucenik2=70;
>> ucenik3=50;
>> primer2
prosek_bodova =
69
>>
3. Promenljiva je definisana u skript datoteci, ali je zadata vrednodt uneta u komandni
prozor tek nakon pokretanja datoteke
Nakon pokretanja datoteke od korisnika se zahteva da promenljivoj dodeli vrednost u
komandnom prozoru. To se radi komandom input:
ime_promenljive=input(znakovni niz poruke koja e biti prikazana u komandnom
prozoru)
Kada se skript datoteka pokrene i komanda input izvri, znakovni niz se prikazuje u komandnom
prozoru. To je poruka korisniku da upie vrednost i pritisne Enter. Time e promenljivoj biti
dodeljena upisana vrednost. Na kraju input komande treba staviti taku i zarez ukoliko ne elimo
da se vrenost promenljive opet prikae u komandnom prozoru:
%primer unosenja podataka%

ucenik1=input('Unesite bodove prvog ucenika');


ucenik2=inpit('Unesite bodove drugog ucenika');
ucenik3=input('Unesite bodove treceg ucenika');
prosek_bodova=(ucenik1+ucenik2+ucenik3)/3
Evo kako izgleda komandni prozor za tu skript datoteku:
>> primer3
Unesite bodove prvog ucenika77
Unesite bodove drugog ucenika83
Unesite bodove treceg ucenika59
prosek_bodova =
73
>>

Izlazne komande
Matlab ima nekoliko komandi za generisanje prikaza koji mogu sadrati tekstualne
poruke, numerike podatke i grafikone. Za generisanje prikaza koriste se komande disp, i fprintf.
Komanda disp prikazuje rezultat na ekranu, dok se komanda fprintf koristi za prikazivanje
rezultata na ekranu ili za upisivanje u datoteku. Obe komande se mogu upotrebljavati i u
komandnom prozoru i u skript datoteci. Kada se upotrebe u skript datoteci komande daju prikaz
rezultata u komandnom prozoru.
Komanda disp
Koristi se za prikazivanje elemenata promenljive bez prikazivanja njenog imena, i za
prikazivanje teksta. Format ove komande glasi:
disp(ime promenljive) ili disp(tekst kao znakovni niz)
Svaki rezultat komande disp se prikazuje u novom redu:
>> abc=[5 9 1;7 2 4];
>> disp(abc)
5 9 1
7 2 4
>> disp('Zadatak nema resenje')
Zadatak nema resenje
Upotrebiemo komandu disp u primeru za izraunavanje prosenog broja bodova:
%primer unosenja podataka%
ucenik1=input('Unesite bodove prvog ucenika');
ucenik2=input('Unesite bodove drugog ucenika');
ucenik3=input('Unesite bodove treceg ucenika');
prosek_bodova=(ucenik1+ucenik2+ucenik3)/3;
disp('')
disp('Prosecan broj bodova je:')
disp('')
disp(prosek_bodova)

U komandnom prozoru izvravanje ove datoteke izgleda na sledei nain:


>> primer4
Unesite bodove prvog ucenika72
Unesite bodove drugog ucenika66
Unesite bodove treceg ucenika88
Prosecan broj bodova je:
75.3333
Svaka komanda disp prikazuje vrednost samo jedne promeljive. esto treba prikazati brojeve u
tabelarnom obliku. U tom sluaju prvo definiemo promenljivu koja je matrica s brojevima, pa
nju prikaemo pomou komande disp. Istom komandom moemo prikazati i zaglavlje tabele, ali
poto ona ne omoguava podeavanje formata prikaza tabele, poloaj zaglavlja prema kolonama
podeava se dodavanjem razmaka.
god=[1984 1986 1988 1990 1992 1994 1996];
stan=[127 130 136 145 158 178 211];
tabela(:,1)=god';
tabela(:,2)=stan';
disp(' GODINA
STANOVNIKA')
disp('
U MILIONIMA')
disp('')
disp(tabela)Pokretanjem ove datoteke dobija se sledei prikaz u komandnom prozoru:
>> komanda_disp
GODINA
STANOVNIKA
U MILIONIMA
1984
127
1986
130
1988
136
1990
145
1992
158
1994
178
1996
211
Komanda fprintf
Pomou ove komande moete prikazati rezultat na ekranu ili ga upisati u odreenu
datoteku. Tekst i numerike vrednosti mogu biti prikazani u istom redu, a moe se zadati i format
brojeva.
- Upotreba komande za prikazivanje teksta
fprintf(tekst upisan kao znakovni niz)
Komanda omoguava i prelazak u novi red na proizvoljnom mestu znakovnog niza. To se radi
umetanjem sekvence \n pre znaka kojim treba da pone prikaz u novom redu. Ovo se zove
izlazna sekvenca. Postoje i sledee sekvence: \b-kao da je pritisnut taster Backspace i \t-kao da je
pritisnut Tab. Da bi izlaz komande fprintf poeo u novom redu, upiite \n na poetak znakovnog
niza.
- Prikazivanje izmeanog teksta i numerikih podataka
fprintf(tekst kao znakovni niz %-5.2f dodatni tekst,ime_promenljive)

%oznaava mesto gde se broj treba umetnuti u tekst. -5.2f oznaavaju:-znak broja, 5.2 irinu
polja i preciznost tj najmanji broj cifara i decimalna mesta, i f znak konverzije, odnosno nain
prokaza broja. Uobiajeni su sledei naini prikazivanja:
e
Eksponencijalna notacija sa malim e
E
Eksponencijalna notacija sa velikim E
f
Notacija sa fiksnom decimalnom takom
g
Kraa od notacija e ili f
G
Kraa od notacija E ili f
i
Ceo broj
Iskoristiemo primer sa prosenim brojem bodova:
%primer koriscenja komande fprintf%
ucenik(1)=input('Unesite bodove prvog ucenika');
ucenik(2)=input('Unesite bodove drugog ucenika');
ucenik(3)=input('Unesite bodove treceg ucenika');
prosek_bodova=mean(ucenik);
fprintf('Prosecan broj bodova ucenika je %f',prosek_bodova)
Primetite da su bodovi uenika uneeni u vektor i da je prosean broj bodova izraunat
pomou funkcije mean koja odreuje srednju vrednost vektora. Kao rezultat izvravanja ove
skript datoteke dobijamo:
>> primer5
Unesite bodove prvog ucenika94
Unesite bodove drugog ucenika86
Unesite bodove treceg ucenika73
Prosecan broj bodova ucenika je 84.333333
U jednu komandu moe se umetnuti vei broj promenljivih koje se redom navode na kraju
komande, iza teksta i zareza. Komanda fprintf je vektorizovana, tj ona se automatski ponavlja
dok ne prikae sve elemente promenljive.
PRIMER1:
%izracunati povrsinu i obim pravougaonika%
a=input('unesite a= ');
b=input('unesite b= ');
fprintf('povrsina pravougaonika %ix%i je %i, a obim je %i cm',a,b,a*b,2*(a+b))

kada se pokrene ova skript datoteka dobije se


unesite a= 5
unesite b= 6
povrsina pravougaonika 5x6 je 30, a obim je 22 cm>>
PRIMER2:
%generisati matricu T dimenzija 2x5, u kojoj prvu vrstu zauzimaju brojevi
%od 1 do 5, a drugu odgovarajuci kvadratni koreni i prikazati tabelarno%
clc
x=1:5;
T=[x;sqrt(x)];
fprintf('za broj %i kvadratni koren iznosi %5.2f\n',T)

kada se pokrene ova skript datoteka dobije se

za broj 1 kvadratni koren iznosi


za broj 2 kvadratni koren iznosi
za broj 3 kvadratni koren iznosi
za broj 4 kvadratni koren iznosi
za broj 5 kvadratni koren iznosi

1.00
1.41
1.73
2.00
2.24

PRIMER3:
%za cele brojeve od n do m prikazati tabelarno njihove kvadrate i kvadratne
%korene%
n=input('unesi pocetni broj: ');
m=input('unesi krajnji broj: ');
a=n:m;
b=[a;a.^2;sqrt(a)];
fprintf('broj kvadrat koren\n')
fprintf('%4i%9i%7.2f\n',b)

kada se pokrene ova skript datoteka dobije se


unesi pocetni broj: 5
unasi krajnji broj: 10
broj kvadrat koren
5
25 2.24
6
36 2.45
7
49 2.65
8
64 2.83
9
81 3.00
10
100 3.16
- Upotreba komande fprintf za pisanje rezultata u datoteku
Pisanje rezultata zahteva tri koraka:
a) otvaranje datoteke komandom fopen
b) pisanje rezultata u otvorenu datoteku komandom fprintf
c) zatvaranje datoteke komandom fclose
Komanda za otvaranje datoteke ima sledei oblik:
fid=fopen(ime_promenljive,dozvola)
fid je promenljiva zvana indikator datoteke. Kada se izvri komanda fopen, promenljivoj fid se
dodeljuje skalarna vrednost. Ime promenljive pie se kao znakovni niz unutar polunavodnika.
Dozvola je ifra koja odreuje nain otvaranja datoteke:
r
otvara datoteku za itanje
w
otvara datoteku za pisanje; ukoliko datoteka postoji, njen sadraj se brie, ukoliko ne
postoji, pravi se nova datoteka
a
isto kao w, samo to se postojei sadraj ne brie, novi se dodaje na kraj postojeeg.
Ako komanda ne sadrzi sifru dozvole, datoteka se otvara sa podrazumevanom sifrom r.
Kada je datoteka otvorena, rezultati se mogu upisati u nju komandom fprintf. Ona se
upotrebljava na nain kao to smo ve objasnili, samo to se na prvo mesto komande umetne
promenljiva fid. Npr: fprintf(fid,tekst %i tekst,ImePromenljive);
Kada se upiu podaci u datoteku, ona se zatvara komandom
fclose(fid)
Komandom fprintf se mogu upisati podaci u vie datoteka. Najpre se otvore datoteke sa
razliitim fid-ovima, a zatim se upie podatak u eljenu datoteku.

Datoteka mora biti snimljena u tekucem direktorijumu. Ne mora se unapred praviti, napravice je
sam program pri izvrsavanju.
PRIMER3: dodati u skript datoteku komande za ispis rezultata i u tekstualnu datoteku
%za cele brojeve od n do m prikazati tabelarno njihove kvadrate i kvadratne
%korene%
n=input('unesi pocetni broj: ');
m=input('unasi krajnji broj: ');
a=n:m;
b=[a;a.^2;sqrt(a)];
fid=fopen('tabela.txt','w');
fprintf(fid,'broj kvadrat koren\n');
fprintf(fid,'%4i%11i%10.2f\n',b);
fprintf('broj kvadrat
koren\n');
fprintf('%4i%10i%10.2f\n',b);
fclose(fid);

fajl otvoren u editoru matlaba

fajl otvoren u Word-u

You might also like