next up previous contents
Next: 3.6.2 Preporuke za razvoj Up: 3.6 Savjeti za rad Previous: 3.6 Savjeti za rad

3.6.1 Greške u programima

Ukoliko pri izvršenju programa dođe do neočekivanih uvjeta - greške, MATLAB nas upozorava porukom u komandnom prozoru i prekida daljnje izvršavanje programa. Ukoliko dođe do neočekivanih uvjeta pri izvršavanju određenog programa, ali ne kritičnih da bi se prekinulo njegovo izvršavanja MATLAB nam daje upozorenje.

Bitno je napomenuti da se za prve korake u MATLAB-u korektnom analizom poruke greške iz komandnog prozora može brže napredovati u radu. Tako je npr. poruka pri grešci koju smo već sreli bila:

>> y=average(x)
??? Undefined function or variable 'average'.
Ovu je bila poruka nakon starta funkcije average kada nije bila u pathu. MATLAB javlja da nije našao ni funkciju ni varijablu imena average. Naime MATLAB nakon unosa određene naredbe (bilo u komandnom prozoru ili programu) ima u osnovi sljedeća pravila prioriteta3.4:
  1. provjerava da li postoji varijabla imena average u radnom prostoru,
  2. provjerava da li postoji podfunkcija tog imena,
  3. provjerava da li postoji privatna funkcija istog imena,
  4. pretražuje trenutni direktorij s funkcijom average.m,
  5. pretražuje direktorije u path-u s funkcijom average.m, ili MATLAB ugrađene funkcije.
Sličnu poruku bi dobili ukoliko bi u funkciji average.m u zadnjem redu umjesto naredbe za sumiranje sum greškom stajalo sm:
>> y=average(x)
??? Undefined function or variable 'sm'.

Error in ==> C:\MATLAB6p5\work\average.m
On line 10  ==> a = sm(b)/length(b);      % izracun srednje vrijednosti

Pored ove greške nekorektnih imena varijabli (često s razlikom u velikom/malom slovu) najčešća je greška operacije na matricama nekorektnih dimenzija te sintaksna greška u zapisu matematičkih izraza i to kada se ispusti zagrada kao npr.:

>> y=average(x)
??? Error: File: C:\MATLAB6p5\work\average.m Line: 10 Column: 20
")" expected, ";" found.

U MATLAB-u postoje alati za upravljanje greškama - prekidima programa kojima je moguće provjeriti uvjete zbog kojih je došlo do određene greške te ovisno o situaciji primijeniti odgovarajući algoritam (npr. try-catch petlja). Pored toga MATLAB ima ugrađen debuger kojim se može analizirati sama greška ili upozorenje kao i uvjeti zbog kojih je do njih došlo.



... prioriteta3.4
Ovdje navedena pravila vrijede za verziju 6, dok su za verziju 7 samo u manjoj mjeri nadopunjena novijim elementima te verzije.

next up previous contents
Next: 3.6.2 Preporuke za razvoj Up: 3.6 Savjeti za rad Previous: 3.6 Savjeti za rad
Milan Vrdoljak, 2007-10-15