Funciones anidadas en MATLAB

Las funciones en cualquier lenguaje de programación son unos bloques de código, que se pueden reutilizar cuando se requiera, simplemente llamando al nombre. Reduce mucho el esfuerzo humano y también la reescritura del mismo código, y hace que todo el código sea grande. 

Declarando una función:

 Para declarar una función en MATLAB usamos lo siguiente:

Sintaxis:

function [x1,x2,...,xn] = myfunc(k1,k2,...,km)

Entendamos primero la sintaxis. Aquí, myfunc es el nombre de la función. Los x1,x2,…,xn son el parámetro que se envía a la función, y k1,k2,…,kn son la salida que se obtiene. 
 

Ejemplo 1:

Matlab

% MATLAB function of adding two numbers 
function x = multiply(a,b)
    x= a*b;
end

Producción:

Función anidada:

Cuando declara una función, bajo otra función principal, se conoce como función anidada.

Ejemplo 2:

Matlab

% MATLAB function for Nested function
function parentfunc
disp('I am a parent function')
nestedfunc
    function nestedfunc
        disp('I am a nested function')
    end
end

Producción:

ventajas:

  • En la función anidada, también puede usar esas variables que no necesariamente se pasaron como argumentos de entrada del usuario.
  • Desde la función principal, puede controlar el funcionamiento de la función anidada, es decir, puede manejar los datos necesarios para ejecutar la función anidada.

Características de las funciones anidadas:

También puede compartir variables de la función anidada a la función principal.

Ejemplo 3:

Matlab

% MATLAB Code for share variables from the
% nested function to the main function
function parent
    nestedfunc
    function nestedfunc
        x = 5;
    end
      x = x+1;
    disp(x);
end

Producción:

Puede anidar más de una función bajo la misma función principal. 

Ejemplo 4:

Matlab

% MATLAB Code for more than one function
% under the same parent function
function parent
    nestedfunc1
    nestedfunc2
    function nestedfunc1
        fprintf('GFG\n');
    end
    function nestedfunc2 
        fprintf('GeeksforGeeks');
    end
end

Producción:

Puede compartir variables entre dos funciones anidadas, bajo la misma función principal.

Ejemplo 5:

Matlab

% MATLAB code for two nested functions,
% under the same parent function
function parent 
    x = 5
    nested1
    nested2
    function nested1
        x = x*2;
    end
    function nested2
        x = x+5;
    end
disp(x)
end

 Producción:

También puede manejar funciones anidadas con la ayuda de la función principal usando una variable en la función principal.

Ejemplo 6: 

Matlab

% MATLAB Code for handle nested functions with 
% the help of the parent function  
function parentfun
x = 5;
a = nestedfunc;
  
       function b = nestedfunc
        b = x + 1;
        fprintf('GFG\n');
       end 
    disp(a);
end

Producción:

Publicación traducida automáticamente

Artículo escrito por geeky01adarsh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *