Įdėta funkcija yra funkcija, kuri yra sukurta kitoje MATLAB funkcijoje. Ypatinga įdėtųjų funkcijų savybė yra ta, kad jos gali naudoti ir keisti kintamuosius, apibrėžtus pagrindinėje funkcijoje.
Sintaksė
Šios MATLAB įdėtos funkcijos gali lengvai pasiekti pirminių funkcijų kintamuosius. Štai sintaksė, skirta įdėtoms funkcijoms apibrėžti MATLAB:
funkcija tėvas
disp ( „Tėvų funkcija“ )
nesdfx
funkcija nesdfx
disp ( „Įdėta funkcija“ )
galas
galas
Kodo pavyzdys
Žemiau pateikėme įdėtos funkcijos MATLAB kodą:
funkcija tėvųFunkcija
x = 10 ;
NesdFunction1 ( )
% 1 įdėta funkcija
funkcija NesdFunction1
disp ( „NestedFunction1 viduje“ ) ;
disp ( x ) ; % Prieiga prie kintamojo x iš pirminės funkcijos
ir = dvidešimt ;
NesdFunction2 ( )
% 2 įdėta funkcija
funkcija NesdFunction2
disp ( „NestedFunction2 viduje“ ) ;
disp ( x ) ; % Prieiga prie kintamojo x iš pirminės ir įdėtos funkcijos 1
disp ( ir ) ; % Prieiga prie kintamojo y iš įdėtos funkcijos 1
galas
galas
galas
Aukščiau MATLAB apibrėžia pagrindinės funkcijos pavadinimą kaip tėvųFunkcija ir apibrėžia dvi įdėtas funkcijas: NesdFunction1 ir NesdFunction2 .
NestedFunction1 rodo kintamojo x reikšmę iš pirminės funkcijos ir apibrėžia kitą kintamąjį y. Po to jis iškvies funkcijos pavadinimą nestedFunction2.
„nesdFunction2“ rodo x reikšmę iš pagrindinės funkcijos ir „nesdFunction1“, taip pat y reikšmę iš „nesdFunction1“. Įvykdžius kodą, išvestyje bus rodomi abiejų įdėtųjų funkcijų pranešimai kartu su x ir y reikšmėmis.
Kintamųjų bendrinimas iš įdėtųjų funkcijų į pagrindinę funkciją
MATLAB taip pat galime apibrėžti kintamuosius ir dalytis jais iš įdėtos į pagrindinę funkciją.
funkcija tėvasnesdfunc
funkcija nesdfunc
x = 10 ;
galas
x = x+ 1 ;
disp ( x ) ;
galas
Šis MATLAB kodas apibrėžia funkciją, vadinamą pirmine, kurioje yra įdėta funkcija, vadinama nesdfunc . Kodas priskiria 10 reikšmę kintamajam x sistemoje „nestedfunc“, tada padidina ją 1 pirminėje funkcijoje ir parodo rezultatą.
Kelių funkcijų įtraukimas į tą pačią pagrindinę funkciją
MATLAB taip pat galime įtraukti kelias funkcijas į vieną pagrindinę pagrindinę funkciją.
% kelių funkcijų pagal tą pačią pirminę funkcijąfunkcija tėvas
nesdfunc1
nesdfunc2
funkcija nesdfunc1
fprintf ( 'linuxhint.com\n' ) ;
galas
funkcija nesdfunc2
fprintf ( „Sveiki atvykę į Linuxhint“ ) ;
galas
galas
Šis MATLAB kodas apibrėžia funkciją, vadinamą pirmine, kurioje yra dvi įdėtos funkcijos: nestedfunc1 ir nestedfunc2. Kai iškviečiama pirminė funkcija, ji vykdo abi įdėtas funkcijas. „nestedfunc1“ išspausdina pranešimą „Linuxhint.com“, o „nestedfunc2“ – „Welcome to Linuxhint“.
Kintamųjų bendrinimas tarp įdėtųjų funkcijų
MATLAB taip pat galime apibrėžti ir bendrinti vienišų funkcijų kintamuosius su dviem įdėtomis funkcijomis.
% dvi įdėtos funkcijos pagal tą pačią pirminę funkcijąfunkcija tėvas
x = 5
įdėtas1
įdėtas2
funkcija įdėtas1
x = x* 2 ;
galas
funkcija įdėtas2
x = x+ 5 ;
galas
disp ( x )
galas
Šis MATLAB kodas apibrėžia funkciją, vadinamą pirminiu, kuri deklaruoja kintamąjį x, kurio reikšmė yra 5. Tada jame yra dvi įdėtos funkcijos: įdėtos1 ir įdėtos2.
Nesd1 x reikšmė padauginama iš 2, bet kadangi x nėra aiškiai perduodamas kaip argumentas, jis sukuria naują vietinį kintamąjį x viduje nested1, o ne modifikuoja išorinį x kintamąjį.
Nested2 x reikšmė padidinama 5, taip pat sukuriant naują vietinį kintamąjį x viduje nested2.
Įvykdžius įdėtąsias funkcijas, kodas rodo išorinio x kintamojo reikšmę, kuri lieka nepakitusi 5, nes įdėtųjų funkcijų pakeitimai turi įtakos tik vietiniams kintamiesiems šiose funkcijose, o ne išoriniam kintamajam.
Išvada
Įdėtos MATLAB funkcijos gali tvarkyti kodą, pagerinti pakartotinį naudojimą ir pagerinti našumą. Jie leidžia funkcijoms pasiekti ir modifikuoti kintamuosius, apibrėžtus pagrindinėse funkcijose, taip įgalindami geresnę kodo inkapsuliaciją. Įdėtos funkcijos sumažino visuotinių kintamųjų poreikį arba kelių argumentų perdavimą tarp funkcijų. Šiame straipsnyje pateikiami įvairūs MATLAB įdėtųjų funkcijų pavyzdžiai.