En indlejret funktion er en funktion, der er oprettet inde i en anden funktion i MATLAB. Det særlige ved indlejrede funktioner er, at de kan bruge og ændre variabler, der er defineret i den overordnede funktion.
Syntaks
Disse indlejrede funktioner i MATLAB kan nemt få adgang til overordnede funktionsvariabler. Her er syntaksen til at definere indlejrede funktioner i MATLAB:
fungere forælder
disp ( 'Forældrefunktion' )
nestedfx
fungere nestedfx
disp ( 'Indlejret funktion' )
ende
ende
Eksempel kode
Nedenfor har vi givet en MATLAB-kode for en indlejret funktion:
fungere forældrefunktion
x = 10 ;
indlejret funktion1 ( )
% Indlejret funktion 1
fungere indlejret funktion1
disp ( 'Inside nestedFunction1' ) ;
disp ( x ) ; % Adgang til variablen x fra den overordnede funktion
og = tyve ;
indlejret funktion2 ( )
% Indlejret funktion 2
fungere indlejret funktion2
disp ( 'Inside nestedFunction2' ) ;
disp ( x ) ; % Adgang til variablen x fra den overordnede og indlejrede funktion 1
disp ( og ) ; % Adgang til variablen y fra indlejret funktion 1
ende
ende
ende
Ovenfor definerer MATLAB hovedfunktionsnavnet som forældrefunktion , og den definerer to indlejrede funktioner: indlejret funktion1 og indlejret funktion2 .
NestedFunction1 viser værdien af variablen x fra den overordnede funktion og definerer en anden variabel y. Derefter vil den kalde funktionsnavnet nestedFunction2.
NestedFunction2 viser værdien af x fra både den overordnede funktion og nestedFunction1, såvel som værdien af y fra nestedFunction1. Efter eksekvering af koden vil outputtet vise meddelelserne fra begge indlejrede funktioner sammen med værdierne af x og y.
Deling af variabler fra indlejrede funktioner til hovedfunktionen
I MATLAB kan vi også definere variabler og dele dem fra indlejret til hovedfunktion.
fungere forældernestedfunc
fungere nestedfunc
x = 10 ;
ende
x = x+ 1 ;
disp ( x ) ;
ende
Denne MATLAB-kode definerer en funktion kaldet overordnet, der indeholder en indlejret funktion kaldet nestedfunc . Koden tildeler en værdi på 10 til variablen x i nestedfunc, øger den derefter med 1 i den overordnede funktion og viser resultatet.
Indlejring af flere funktioner under den samme overordnede funktion
I MATLAB kan vi også inkludere flere funktioner i en enkelt overordnet hovedfunktion.
% flere funktioner under samme overordnede funktionfungere forælder
nestedfunc1
nestedfunc2
fungere nestedfunc1
fprintf ( 'linuxhint.com\n' ) ;
ende
fungere nestedfunc2
fprintf ( 'Velkommen til Linuxhint' ) ;
ende
ende
Denne MATLAB-kode definerer en funktion kaldet overordnet, der indeholder to indlejrede funktioner: nestedfunc1 og nestedfunc2. Når den overordnede funktion kaldes, udfører den begge indlejrede funktioner. nestedfunc1 udskriver beskeden Linuxhint.com, og nestedfunc2 udskriver beskeden 'Welcome To Linuxhint'.
Deling af variabler blandt indlejrede funktioner
I MATLAB kan vi også definere og dele single-parent funktionsvariabler med to indlejrede funktioner.
% to indlejrede funktioner under den samme overordnede funktionfungere forælder
x = 5
indlejret 1
indlejret 2
fungere indlejret 1
x = x* 2 ;
ende
fungere indlejret 2
x = x+ 5 ;
ende
disp ( x )
ende
Denne MATLAB-kode definerer en funktion kaldet overordnet, der erklærer en variabel x med værdien 5. Den indeholder derefter to indlejrede funktioner: indlejret1 og indlejret2.
I nested1 ganges værdien af x med 2, men da x ikke eksplicit sendes som et argument, opretter den en ny lokal variabel x i nested1 i stedet for at ændre den ydre x-variabel.
I nested2 øges værdien af x med 5, hvilket også skaber en ny lokal variabel x i indlejret2.
Efter at have udført de indlejrede funktioner, viser koden værdien af den ydre x-variabel, som forbliver uændret på 5, fordi ændringerne i de indlejrede funktioner kun påvirker de lokale variable i disse funktioner og ikke den ydre variabel.
Konklusion
De indlejrede funktioner i MATLAB kan organisere kode, forbedre genbrugbarheden og forbedre ydeevnen. De tillader funktioner at få adgang til og ændre variabler defineret i deres overordnede funktioner, hvilket muliggør bedre kodeindkapsling. Indlejrede funktioner reducerede behovet for globale variabler eller overføring af flere argumenter mellem funktioner. Denne artikel dækker forskellige eksempler på indlejrede funktioner i MATLAB.