17.04.2014 Views

Matlab Hogyan - Hidrodinamikai Rendszerek Tanszék

Matlab Hogyan - Hidrodinamikai Rendszerek Tanszék

Matlab Hogyan - Hidrodinamikai Rendszerek Tanszék

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

1. FEJEZET. ALAPOK 8<br />

gyokok = [gyok1 gyok2];<br />

function ertek=diszkr(a,b,c)<br />

b2=b^2;<br />

negyac=4*a*c<br />

ertek=b2-negyac;<br />

A masodfok fv3 eljárásnál az a, b és c változók globálisnak vannak deklarálva, így az összes olyan függvény<br />

hozzáfér ill. módosíthat rajtuk, amelyben szintén globálisként definiáltuk őket. (Tehát nem elég a ’főprogramban’<br />

globálisként definiálni, az összes olyan eljárásban meg kell tenni ugyanezt, ahol hozzá szeretnénk<br />

férni.)<br />

masodfok fv3.m<br />

function gyokok=masodfok_fv3<br />

global a b c<br />

a=1; b=2; c=3;<br />

D=diszkr;<br />

gyok1=(-b+sqrt(D))/2/a;<br />

gyok2=(-b-sqrt(D))/2/a;<br />

gyokok = [gyok1 gyok2];<br />

function ertek=diszkr<br />

global a b c<br />

b2=b^2;<br />

negyac=4*a*c;<br />

ertek=b2-negyac;<br />

1.6. Függvény mutatók<br />

A függvény mutatók segítségével függvényekre hivatkozhatunk. Tipikusan egy eljárás argumentumlistájában<br />

szerepelnek a változók mellett, pl. a beépített fzero(fun,x0) gyökkereső eljárás a fun változóban<br />

várja annak a függvénynek a nevét, melynek az x0-hoz közeli gyökét visszaadja. A mutatók használatának<br />

rejtelmeiről és előnyeiről a Help bő felvilágosítást ad. Tipikusan akkor érdemes használni, ha sokszor kell<br />

ugyanazt az eljárást lefuttatni különböző függvényeken és nem akarjuk mindig átírni a programot.<br />

Az alábbi egyszerű példa (handle pelda.m) szemlélteti a fentieket.<br />

handle pelda.m<br />

function handle_pelda<br />

a=2; b=3;<br />

fhandle=@osszead;<br />

c=feval(fhandle,a,b)<br />

fhandle=@szoroz;

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

Saved successfully!

Ooh no, something went wrong!