Скрипт датотека је низ Matlab-ових команди снимљених као засебан програм. Њене команде се извршавају редоследом којим су наведене, као да су уписане у командни прозор. Уколико скрипт датотека има команду за излаз, излаз се приказује у командном прозору. Могу се преуређивати неограничен број пута. Могу се писати у било ком едитору и затим готове пренети у Matlab-ов прозор Editor. При снимању добијају наставак .m

Прављење, снимање и извршавање скрипт датотека

Прозор за писање скрипт датотека отвара се из менија File>>New>>M-file.

clip_image002[4]

Команде се пишу ред по ред, притиском на Enter. Matlab аутоматски додељује број реда. Датотека мора бити запамћена да би се могла покренути. То се ради из менија File>>Save As, после чега се бира директоријум у коме ће се снимити датотека.

Датотека се извршава уписивањем њеног имена у командни прозор и притиском на Enter, или притиском на иконицу Run у Едитору. Да би Матлаб могао да покрене скрипт датотеку, претходно је мора пронаћи, што значи да датотека мора бити у текућем директоријуму или на путањи за претраживање. Путања текућег директоријума приказује се у падајућиј листи Cуrrent Directory у командном прозору. Други начин мењања текућег директоријума пружа команда cd у командном прозору.

Ако покренемо скрипт датотеку која није у текућем директоријуму добићемо следећи прозор

image

у којем нас matlab обавештава да скрипта коју смо покренули није у текућем директоријуму. Можемо променути путању избором Change Directory, или додати датотеку у текући директоријум избором Add to Path.

Променљиве дефинисане у командном прозору препознају се и у скрипт датотеци и обрнуто. Такве променљиве се називају глобалне.

Уношење података у скрипт датотеку

Постоје три начина за додељивање вредности променљивој:

  1. Променљива је дефинисана и додељена јој је вредност у скрипт датотеци

clip_image004

Из командног прозора се датотека покреће навођењем њеног имена, уз промену текућег директоријума:

>> primer1

prosek_bodova =

78.6667

>>

  1. Променљива је дефинисана и додељена јој је вредност у командном прозору:

У овом случају, треба прво исправити скрипт датотеку Пример1 и избрисати редове у којима се дају вредности променљивама, тј. оставити само ред за израчунавање просечне вредности:

%primer unosenja podataka%

prosek_bodova=(ucenik1+ucenik2+ucenik3)/3

У командном прозору ћемо задати вредности променљивама и покренути извршавање датотеке:

>> ucenik1=87;

>> ucenik2=70;

>> ucenik3=50;

>> primer2

prosek_bodova =

69

>>

  1. Променљива је дефинисана у скрипт датотеци, али је задата вреднодт унета у командни прозор тек након покретања датотеке

Након покретања датотеке од корисника се захтева да променљивој додели вредност у командном прозору. То се ради командом input:

ime_promenljive=input(’znakovni niz poruke koja će biti prikazana u komandnom prozoru’)

Када се скрипт датотека покрене и команда input изврши, знаковни низ се приказује у командном прозору. То је порука кориснику да упише вредност и притисне Enter. Тиме ће променљивој бити додељена уписана вредност. На крају inpуt команде треба ставити тачку и зарез уколико не желимо да се вреност променљиве опет прикаже у командном прозору:

%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

Ево како изгледа командни прозор за ту скрипт датотеку:

>> primer3

Unesite bodove prvog ucenika77

Unesite bodove drugog ucenika83

Unesite bodove treceg ucenika59

prosek_bodova =

73

>>

Излазне команде

Matlab има неколико команди за генерисање приказа који могу садржати текстуалне поруке, нумеричке податке и графиконе. За генерисање приказа користе се команде disp, i fprintf. Команда disp приказује резултат на екрану, док се команда fprintf користи за приказивање резултата на екрану или за уписивање у датотеку. Обе команде се могу употребљавати и у командном прозору и у скрипт датотеци. Када се употребе у скрипт датотеци команде дају приказ резултата у командном прозору.

Команда disp

Користи се за приказивање елемената променљиве без приказивања њеног имена, и за приказивање текста. Формат ове команде гласи:

disp(ime promenljive) ili disp(’tekst kao znakovni niz’)

Сваки резултат команде disp се приказује у новом реду:

>> abc=[5 9 1;7 2 4];

>> disp(abc)

5 9 1

7 2 4

>> disp(‘Zadatak nema resenje’)

Zadatak nema resenje

Употребићемо команду disp у примеру за израчунавање просечног броја бодова:

%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)

У командном прозору извршавање ове датотеке изгледа на следећи начин:

>> primer4

Unesite bodove prvog ucenika72

Unesite bodove drugog ucenika66

Unesite bodove treceg ucenika88

Prosecan broj bodova je:

75.3333

Свака команда disp приказује вредност само једне промељиве. Често треба приказати бројеве у табеларном облику. У том случају прво дефинишемо променљиву која је матрица с бројевима, па њу прикажемо помоћу команде disp. Истом командом можемо приказати и заглавље табеле, али пошто она не омогућава подешавање формата приказа табеле, положај заглавља према колонама подешава се додавањем размака.

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)

Покретањем ове датотеке добија се следећи приказ у командном прозору:

>> komanda_disp

      GODINA STANOVNIKA

                    U MILIONIMA

     1984                    127

     1986                    130

     1988                    136

     1990                    145

     1992                    158

     1994                    178

     1996                    211

Команда fprintf

Помоћу ове команде можете приказати резултат на екрану или га уписати у одређену датотеку. Текст и нумеричке вредности могу бити приказани у истом реду, а може се задати и формат бројева.

Употреба команде за приказивање текста

fprintf(’tekst upisan kao znakovni niz’)

Команда омогућава и прелазак у нови ред на произвољном месту знаковног низа. То се ради уметањем секвенце \n пре знака којим треба да почне приказ у новом реду. Ово се зове излазна секвенца. Постоје и следеће секвенце: \b-као да је притиснут тастер Backspace и \t-као да је притиснут Tab. Да би излаз команде fprintf почео у новом реду, упишите \n на почетак знаковног низа.

Приказивање измешаног текста и нумеричких података

fprintf(’tekst kao znakovni niz %-5.2f dodatni tekst’,ime_promenljive)

%означава место где се број треба уметнути у текст. -5.2f означавају:-знак броја, 5.2 ширину поља и прецизност тј најмањи број цифара и децимална места, и f знак конверзије, односно начин приказа броја.

Уобичајени су следећи начини приказивања:

e Експоненцијална нотација са малим e

E Експоненцијална нотација са великим Е

f Нотација са фиксном децималном тачком

g Краћа од нотација е или f

G Краћа од нотација Е или f

i Цео број

Искористићемо пример са просечним бројем бодова:

%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)

Приметите да су бодови ученика унешени у вектор и да је просечан број бодова израчунат помоћу функције mean која одређује средњу вредност вектора. Као резултат извршавања ове скрипт датотеке добијамо:

>> primer5

Unesite bodove prvog ucenika94

Unesite bodove drugog ucenika86

Unesite bodove treceg ucenika73

Prosecan broj bodova ucenika je 84.333333

У једну команду може се уметнути већи број променљивих које се редом наводе на крају команде, иза текста и зареза. Команда fprintf је векторизована, тј она се аутоматски понавља док не прикаже све елементе променљиве.

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 5×6 je 30, a obim je 22 cm>>

PRIMER2:

%generisati matricu T dimenzija 2×5, у 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 1.00

za broj 2 kvadratni koren iznosi 1.41

za broj 3 kvadratni koren iznosi 1.73

za broj 4 kvadratni koren iznosi 2.00

za broj 5 kvadratni koren iznosi 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

– Употреба команде fprintf за писање резултата у датотеку

Писање резултата захтева три корака:

a) отварање датотеке командом fopen

b) писање резултата у отворену датотеку командом fprintf

c) затварање датотеке командом fclose

Команда за отварање датотеке има следећи облик:

fid=fopen(’ime_promenljive’,’dozvola’)

fid је променљива звана индикатор датотеке. Када се изврши команда fopen, променљивој fid се додељује скаларна вредност. Име променљиве пише се као знаковни низ унутар полунаводника. Дозвола је шифра која одређује начин отварања датотеке:

’r’ отвара датотеку за читање

’w’ отвара датотеку за писање; уколико датотека постоји, њен садржај се брише, уколико не постоји, прави се нова датотека

’a’ исто као w, само што се постојећи садржај не брише, нови се додаје на крај постојећег.

Ако команда не садржи шифру дозволе, датотека се отвара са подразумеваном шифром ’r’.

Када је датотека отворена, резултати се могу уписати у њу командом fprintf. Она се употребљава на начин као што смо већ објаснили, само што се на прво место команде уметне променљива fid. Нпр: fprintf(fid,’tekst %i tekst’,ImePromenljive);

Када се упишу подаци у датотеку, она се затвара командом

fclose(fid)

Командом fprintf се могу уписати подаци у више датотека. Најпре се отворе датотеке са различитим fid-овима, а затим се упише податак у жељену датотеку.

Датотека мора бити снимљена у текућем директоријуму. Не мора се унапред правити, направиће је сам програм при извршавању.

ПРИМЕР3: додати у скрипт датотеку команде за испис резултата и у текстуалну датотеку

%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);

clip_image003 clip_image004[4]

фајл отворен у едитору matlaba фајл отворен у Word-у

Advertisements