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 7<br />

1.4. Függvények<br />

A függvényeket paraméterlistával hívjuk meg és visszatérési értékeik vannak. Az előző másodfokú példa<br />

függvényként:<br />

masodfok fv.m<br />

function gyokok = masodfok_fv(a,b,c)<br />

D=b^2-4*a*c;<br />

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

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

gyokok = [gyok1 gyok2];<br />

Magyarázat<br />

Ezt a fájlt már nem lehet akármilyen néven elmenteni, a fájlnévnek masodfok fv.m-nek kell lennie (azaz<br />

az eljárárs nevének). A függvény bemenete a, b és c, kimenete pedig a gyokok vektor. A függvény hívása<br />

parancssorból:<br />

>> mo=masodfok_fv(1,2,5);<br />

>> mo<br />

mo =<br />

-1.0000 + 2.0000i -1.0000 - 2.0000i<br />

A D diszkrimináns belső változó, a parancssorból nem érhető el:<br />

>> D<br />

??? Undefined function or variable ’D’.<br />

1.5. Lokális és globális változók<br />

Induljunk ki az előző esetből, ahol adott egy függvény és ezen belül definiáltunk változókat. Ha most azt<br />

szeretnénk, hogy valamilyen belső változóhoz másik függvény is hozzáférjen, két lehetőségünk van:<br />

• a függvények argumentumlistájában definiáljuk az értéket (ld. masodfok fv2.m)<br />

• globális változóként definiáljuk a változókat (ld. masodfok fv3.m)<br />

A következő program az argumentumlistában megkapott a, b és c változókat átadja a diszkr(a,b,c)<br />

eljárásnak, amely szintén az argumentumlistában veszi át az értékeket. A b2 és negyac véltozók csak a<br />

diszkr eljáráson belül hozzáférhetők.<br />

masodfok fv2.m<br />

function gyokok=masodfok_fv2(a,b,c)<br />

D=diszkr(a,b,c);<br />

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

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

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

Saved successfully!

Ooh no, something went wrong!