Pesastatud funktsioonide kasutamine MATLABis

Pesastatud Funktsioonide Kasutamine Matlabis



MATLAB-i pesastatud funktsioonid võivad määratleda funktsioone teiste funktsioonide sees. See võib olla kasulik koodi korrastamiseks, koodi korduvkasutatavamaks muutmiseks ja jõudluse parandamiseks.

Pesastatud funktsioon on funktsioon, mis luuakse MATLABis mõne teise funktsiooni sees. Pesastatud funktsioonide eripära on see, et nad saavad kasutada ja muuta muutujaid, mis on määratletud põhifunktsioonis.

Süntaks







Need MATLAB-i pesastatud funktsioonid pääsevad hõlpsasti juurde põhifunktsiooni muutujatele. Siin on süntaks pesastatud funktsioonide määratlemiseks MATLABis:



funktsiooni lapsevanem

disp ( 'Vanemfunktsioon' )

nesdfx

funktsiooni nesdfx

disp ( 'Pesastatud funktsioon' )

lõpp

lõpp

Näidiskood

Allpool oleme andnud pesastatud funktsiooni MATLAB-koodi:



funktsiooni vanemfunktsioon

x = 10 ;



nestedFunction1 ( )



% Pesastatud funktsioon 1

funktsiooni nestedFunction1

disp ( „NesedFunction1 sees” ) ;

disp ( x ) ; % Juurdepääs muutujale x põhifunktsioonist

ja = kakskümmend ;



nestedFunction2 ( )



% Pesastatud funktsioon 2

funktsiooni nestedFunction2

disp ( „NesedFunction2 sees” ) ;

disp ( x ) ; % Juurdepääs muutujale x põhi- ja pesastatud funktsioonist 1

disp ( ja ) ; % Juurdepääs muutujale y pesastatud funktsioonist 1

lõpp

lõpp

lõpp

Eespool määratleb MATLAB põhifunktsiooni nime kui vanemfunktsioon ja see määratleb kaks pesastatud funktsiooni: nestedFunction1 ja nestedFunction2 .





NesdFunction1 kuvab põhifunktsiooni muutuja x väärtuse ja määratleb teise muutuja y. Pärast seda kutsub see funktsiooni nime nesdFunction2.

Funktsioon nestedFunction2 kuvab nii põhifunktsiooni kui ka nestedFunction1 väärtuse x, aga ka funktsiooni NesdFunction1 väärtuse y. Pärast koodi käivitamist kuvatakse väljundis mõlema pesastatud funktsiooni teated koos x ja y väärtustega.



  Arvuti ekraanipilt, keskmise usaldusväärsusega automaatselt genereeritud kirjeldus

Muutujate jagamine pesastatud funktsioonidest põhifunktsioonile

MATLABis saame ka defineerida muutujaid ja jagada neid pesastatud põhifunktsioonile.

funktsiooni lapsevanem

nestedfunc

funktsiooni nestedfunc

x = 10 ;

lõpp

x = x+ 1 ;

disp ( x ) ;

lõpp

See MATLAB-kood määratleb funktsiooni nimega ema, mis sisaldab pesastatud funktsiooni nimega nestedfunc . Kood määrab Nesdfunc muutujale x väärtuse 10, seejärel suurendab seda põhifunktsioonis 1 võrra ja kuvab tulemuse.

Mitme funktsiooni pesastamine sama vanemfunktsiooni alla

MATLABis saame lisada ka mitu funktsiooni ühte põhifunktsiooni.

% mitu funktsiooni sama vanemfunktsiooni all

funktsiooni lapsevanem

nestedfunc1

nestedfunc2

funktsiooni nestedfunc1

fprintf ( 'linuxhint.com\n' ) ;

lõpp

funktsiooni nestedfunc2

fprintf ( 'Tere tulemast Linuxhinti' ) ;

lõpp

lõpp

See MATLAB-kood määratleb funktsiooni nimega ema, mis sisaldab kahte pesastatud funktsiooni: nestedfunc1 ja nesdfunc2. Ülemfunktsiooni kutsumisel täidab see mõlemad pesastatud funktsioonid. nestedfunc1 prindib sõnumi Linuxhint.com ja nestedfunc2 sõnumi 'Tere tulemast Linuxhinti'.

  Pilt, mis sisaldab teksti, fonti ja ekraanipilti Kirjeldus genereeritakse automaatselt

Muutujate jagamine pesastatud funktsioonide vahel

MATLABis saame määratleda ja jagada ka ühe vanema funktsioonide muutujaid kahe pesastatud funktsiooniga.

% kaks pesastatud funktsiooni sama vanemfunktsiooni all

funktsiooni lapsevanem

x = 5

pesastatud1

pesastatud2

funktsiooni pesastatud1

x = x* 2 ;

lõpp

funktsiooni pesastatud2

x = x+ 5 ;

lõpp

disp ( x )

lõpp

See MATLAB-kood määratleb funktsiooni nimega parent, mis deklareerib muutuja x väärtusega 5. Seejärel sisaldab see kahte pesastatud funktsiooni: nested1 ja nesd2.

Funktsioonis Nesd1 korrutatakse x väärtus 2-ga, kuid kuna x-i argumendina otseselt ei edastata, loob see välimise x muutuja muutmise asemel uue lokaalse muutuja x nested1-s.

Funktsioonis Nesd2 suurendatakse x väärtust 5 võrra, luues ühtlasi uue lokaalse muutuja x Nesd2-s.

Pärast pesastatud funktsioonide täitmist kuvab kood välimise x muutuja väärtuse, mis jääb muutumatuks 5-na, kuna pesastatud funktsioonides tehtud muudatused mõjutavad ainult nende funktsioonide kohalikke muutujaid, mitte välist muutujat.

  Pilt, mis sisaldab teksti, ekraanipilti, tarkvara, rida Kirjeldus genereeritakse automaatselt

Järeldus

MATLAB-i pesastatud funktsioonid saavad koodi korraldada, korduvkasutatavust ja jõudlust parandada. Need võimaldavad funktsioonidel pääseda juurde ja muuta nende põhifunktsioonides määratletud muutujaid, võimaldades paremat koodi kapseldamist. Pesastatud funktsioonid vähendasid vajadust globaalsete muutujate järele või funktsioonide vahel mitme argumendi edastamise järele. See artikkel hõlmab mitmesuguseid MATLABi pesastatud funktsioonide näiteid.