20.07.2013 Views

Software matematic

Software matematic

Software matematic

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

1.4. Programarea în MATLAB 45<br />

instructiune<br />

end<br />

Se execută instruct¸iunile dintre try s¸i catch. Dacă apare o eroare se execută<br />

instruct¸iunile dintre catch s¸i end. Această parte trebuie să trateze eroare într-un<br />

anumit mod. Blocurile try-catch se pot imbrica.<br />

În MATLAB 7 funct¸ia error se poate apela cu un mesaj de eroare cu format (ca<br />

în sprintf), după cum ne arată exemplul următor:<br />

error(’File %s not found\n’, filename)<br />

sau cu un identificator de mesaj<br />

error(’MATLAB:noSuchFile’, ’File %s not found\n’,...<br />

filename)<br />

Sursa ultimei erori se poate identifica cu lasterr, care returnează ultimul mesaj<br />

de eroare sau cu lasterror, care returnează o structură ce cont¸ine mesajul de<br />

eroare s¸i identificatorul acestuia.<br />

Exemplul următor determină cauza erorii la înmult¸irea a două matrice utilizând<br />

try-catch s¸i lasterr:<br />

function matrixMultiply2(A, B)<br />

try<br />

A * B<br />

catch<br />

errmsg = lasterr;<br />

if(strfind(errmsg, ’Inner matrix dimensions’))<br />

disp(’** Wrong dimensions for matrix multiply’)<br />

else<br />

if(strfind(errmsg, ’not defined for values of class’))<br />

disp(’** Both arguments must be double matrices’)<br />

end<br />

end<br />

end<br />

Dacă dimensiunea matricelor este ilegală, se afis¸ază primul mesaj:<br />

>> A = [1 2 3; 6 7 2; 0 1 5];<br />

>> B = [9 5 6; 0 4 9];<br />

>> matrixMultiply2(A, B)<br />

** Wrong dimensions for matrix multiply<br />

iar dacă funct¸ia este apelată cu un argument tablou de celule, al doilea mesaj:<br />

>> C = {9 5 6; 0 4 9};<br />

>> matrixMultiply2(A, C)<br />

** Both arguments must be double matrices<br />

Pentru detalii a se vedea doc try s¸i [13].

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!