Una funció imbricada és una funció que es crea dins d'una altra funció a MATLAB. L'especial de les funcions imbricades és que poden utilitzar i canviar variables que es defineixen a la funció pare.
Sintaxi
Aquestes funcions imbricades a MATLAB poden accedir fàcilment a les variables de la funció pare. Aquí teniu la sintaxi per definir funcions imbricades a MATLAB:
funció pare
disp ( 'Funció pare' )
nestedfx
funció nestedfx
disp ( 'Funció imbricada' )
final
final
Exemple de codi
A continuació hem donat un codi MATLAB d'una funció imbricada:
funció parentFunction
x = 10 ;
netedFunction1 ( )
% Funció imbricada 1
funció netedFunction1
disp ( 'Dins de nedFunction1' ) ;
disp ( x ) ; % Accés a la variable x des de la funció pare
y = 20 ;
netedFunction2 ( )
% Funció imbricada 2
funció netedFunction2
disp ( 'Inside nestedFunction2' ) ;
disp ( x ) ; % Accés a la variable x des de la funció pare i imbricada 1
disp ( i ) ; % Accés a la variable y des de la funció imbricada 1
final
final
final
A dalt, MATLAB defineix el nom de la funció principal com parentFunction , i defineix dues funcions imbricades: netedFunction1 i netedFunction2 .
La nestedFunction1 mostra el valor de la variable x de la funció pare i defineix una altra variable y. Després d'això, cridarà al nom de la funció nestedFunction2.
La nestedFunction2 mostra el valor de x tant de la funció pare com de la nestedFunction1, així com el valor de y de la nestedFunction1. Després d'executar el codi, la sortida mostrarà els missatges de les dues funcions imbricades, juntament amb els valors de x i y.
Compartint variables des de funcions niuades fins a la funció principal
A MATLAB també podem definir variables i compartir-les des de la funció imbricada a la principal.
funció parenedfunc
funció nedfunc
x = 10 ;
final
x = x+ 1 ;
disp ( x ) ;
final
Aquest codi MATLAB defineix una funció anomenada pare que conté una funció imbricada anomenada nedfunc . El codi assigna un valor de 10 a la variable x a nestedfunc, després l'incrementa en 1 a la funció principal i mostra el resultat.
Nidificació de múltiples funcions sota la mateixa funció principal
A MATLAB també podem incloure diverses funcions dins d'una única funció principal principal.
% de múltiples funcions sota la mateixa funció principalfunció pare
nedfunc1
nedfunc2
funció nedfunc1
fprintf ( 'Linuxhint.com\n' ) ;
final
funció nedfunc2
fprintf ( 'Benvingut a Linuxhint' ) ;
final
final
Aquest codi MATLAB defineix una funció anomenada pare que conté dues funcions imbricades: nestedfunc1 i nestedfunc2. Quan es crida a la funció pare, executa les dues funcions imbricades. nestedfunc1 imprimeix el missatge Linuxhint.com i nestedfunc2 imprimeix el missatge 'Benvingut a Linuxhint'.
Compartint variables entre funcions imbricades
A MATLAB també podem definir i compartir variables de funcions monoparentals amb dues funcions imbricades.
% dues funcions imbricades sota la mateixa funció principalfunció pare
x = 5
niu 1
niu 2
funció niu 1
x = x* 2 ;
final
funció niu 2
x = x+ 5 ;
final
disp ( x )
final
Aquest codi MATLAB defineix una funció anomenada pare que declara una variable x amb un valor de 5. A continuació, conté dues funcions imbricades: imbricada1 i imbricada2.
A nested1, el valor de x es multiplica per 2, però com que x no es passa explícitament com a argument, crea una nova variable local x dins de nested1 en lloc de modificar la variable x externa.
A nested2, el valor de x s'incrementa en 5, creant també una nova variable local x dins de nested2.
Després d'executar les funcions imbricades, el codi mostra el valor de la variable x externa, que es manté sense canvis a 5 perquè les modificacions fetes a les funcions imbricades només afecten les variables locals dins d'aquestes funcions i no la variable externa.
Conclusió
Les funcions imbricades a MATLAB poden organitzar el codi, millorar la reutilització i millorar el rendiment. Permeten que les funcions accedeixin i modifiquin variables definides a les seves funcions pare, permetent una millor encapsulació del codi. Les funcions imbricades van reduir la necessitat de variables globals o de passar múltiples arguments entre funcions. Aquest article cobreix diversos exemples de funcions imbricades a MATLAB.