Uma função aninhada é uma função criada dentro de outra função no MATLAB. O que há de especial nas funções aninhadas é que elas podem usar e alterar variáveis definidas na função pai.
Sintaxe
Essas funções aninhadas no MATLAB podem acessar facilmente as variáveis da função pai. Aqui está a sintaxe para definir funções aninhadas no MATLAB:
função pai
disp ( 'Função pai' )
nestedfx
função nestedfx
disp ( 'Função aninhada' )
fim
fim
Código de Exemplo
Abaixo, fornecemos um código MATLAB de uma função aninhada:
função funçãopai
x = 10 ;
nestedFunction1 ( )
% função aninhada 1
função nestedFunction1
disp ( 'Dentro de nestedFunction1' ) ;
disp ( x ) ; % Acessando a variável x da função pai
e = vinte ;
nestedFunction2 ( )
% função aninhada 2
função nestedFunction2
disp ( 'Dentro de nestedFunction2' ) ;
disp ( x ) ; % Acessando a variável x da função pai e aninhada 1
disp ( e ) ; % Acessando a variável y da função aninhada 1
fim
fim
fim
Acima, o MATLAB define o nome da função principal como funçãopai , e define duas funções aninhadas: nestedFunction1 e nestedFunction2 .
O nestedFunction1 exibe o valor da variável x da função pai e define outra variável y. Depois disso, ele chamará o nome da função nestedFunction2.
O nestedFunction2 exibe o valor de x da função pai e nestedFunction1, bem como o valor de y de nestedFunction1. Depois de executar o código, a saída mostrará as mensagens de ambas as funções aninhadas, juntamente com os valores de x e y.
Compartilhando variáveis de funções aninhadas para a função principal
No MATLAB também podemos definir variáveis e compartilhá-las da função aninhada para a principal.
função paifunção aninhada
função função aninhada
x = 10 ;
fim
x = x+ 1 ;
disp ( x ) ;
fim
Este código MATLAB define uma função chamada pai que contém uma função aninhada chamada função aninhada . O código atribui um valor de 10 à variável x em nestedfunc, então incrementa em 1 na função pai e exibe o resultado.
Aninhando várias funções sob a mesma função pai
No MATLAB também podemos incluir múltiplas funções dentro de uma única função pai principal.
% funções múltiplas sob a mesma função paifunção pai
função aninhada1
nestedfunc2
função função aninhada1
fprintf ( 'linuxhint.com\n' ) ;
fim
função nestedfunc2
fprintf ( 'Bem-vindo ao Linuxhint' ) ;
fim
fim
Este código MATLAB define uma função chamada parent que contém duas funções aninhadas: nestedfunc1 e nestedfunc2. Quando a função pai é chamada, ela executa ambas as funções aninhadas. nestedfunc1 imprime a mensagem Linuxhint.com e nestedfunc2 imprime a mensagem “Welcome To Linuxhint”.
Compartilhando variáveis entre funções aninhadas
No MATLAB também podemos definir e compartilhar variáveis de funções monoparentais com duas funções aninhadas.
% duas funções aninhadas sob a mesma função paifunção pai
x = 5
aninhado1
aninhado2
função aninhado1
x = x* 2 ;
fim
função aninhado2
x = x+ 5 ;
fim
disp ( x )
fim
Este código MATLAB define uma função chamada parent que declara uma variável x com um valor de 5. Em seguida, contém duas funções aninhadas: nested1 e nested2.
Em nested1, o valor de x é multiplicado por 2, mas como x não é passado explicitamente como um argumento, ele cria uma nova variável local x dentro de nested1 em vez de modificar a variável x externa.
Em nested2, o valor de x é incrementado em 5, criando também uma nova variável local x dentro de nested2.
Depois de executar as funções aninhadas, o código exibe o valor da variável externa x, que permanece inalterada em 5 porque as modificações feitas nas funções aninhadas afetam apenas as variáveis locais dentro dessas funções e não a variável externa.
Conclusão
As funções aninhadas no MATLAB podem organizar o código, aprimorar a reutilização e melhorar o desempenho. Eles permitem que funções acessem e modifiquem variáveis definidas em suas funções pai, permitindo um melhor encapsulamento de código. As funções aninhadas reduziram a necessidade de variáveis globais ou a passagem de vários argumentos entre as funções. Este artigo aborda vários exemplos de funções aninhadas no MATLAB.