Funciones en MATLAB

Los métodos también se conocen popularmente como funciones . El objetivo principal de los métodos es reutilizar el código. Un método es un bloque de código que se invoca y ejecuta cuando el usuario lo llama. Contiene un espacio de trabajo local e independiente del espacio de trabajo base que pertenece al símbolo del sistema. Echemos un vistazo a la sintaxis del método.

Sintaxis:

          función [y 1 , y 2 , y 3 . . . . , y n ] = nombrefunción(argumentos)

          . . . . . 

         final

donde, y 1 . . . . y n son variables de salida.

La sintaxis de MATLAB es bastante peculiar en comparación con otros lenguajes de programación. Podemos devolver uno o más valores de una función. También podemos pasar uno o más argumentos/variables mientras llamamos a una función. Las funciones de MATLAB deben definirse en archivos separados y el nombre de la función debe coincidir con el nombre del archivo. Veamos también algunas formas más de definir una función según las necesidades del usuario.

  • Funciones anónimas
  • Subfunciones
  • Funciones anidadas
  • Funciones Privadas

Ahora profundicemos en un ejemplo y comprendamos cómo definir una función básica.

Ejemplo:

MATLAB

% A MATLAB program to illustrate
% defining a function
 
function result = adder(x, y, z)
 
% This function adds the 3 input arguments
result = x+y+z;
end

La línea de comentario que se escribe justo después de la declaración de la función funciona como texto de ayuda . Guarde el código anterior como adder.m y observe el resultado llamándolo desde el símbolo del sistema.

Producción:

Llamar a la función definida por el usuario

 

 Funciones anónimas

Una función anónima es como una función en línea con una variable de salida. Puede contener múltiples argumentos de entrada y salida. Un usuario no puede acceder/llamar a una función anónima desde fuera del archivo. El usuario puede definir una función anónima en el símbolo del sistema o dentro de un script o archivo de función. 

Sintaxis:

         salida = @(argumentos) expresión

Parámetros:

        salida = salida a devolver

        argumentos = entradas requeridas para pasar

        expresión = una sola fórmula/lógica a ser 

Ejemplo:

Producción

En el bloque de código anterior, se define y se accede a una función anónima en el símbolo del sistema.

Subfunciones

Las funciones secundarias son las funciones que se definen después de una función principal. Todas las funciones deben definirse en un archivo, excepto las funciones anónimas. Las funciones secundarias se definen en el archivo de función principal y estas funciones no son visibles para ninguna otra función, excepto las funciones principal y secundaria que se definen dentro del archivo. A diferencia de las funciones principales, no se puede acceder a las funciones secundarias desde el símbolo del sistema/otro archivo.  

Sintaxis:

        salida de función = función principal (x)

        . . . . . .

        subfunción(y)

        . . . . . . 

        final

       resultado de la función = subfunción (y)

       . . . . . .

      final 

Ejemplo:

MATLAB

% Printing the sum of two numbers
% using sub functions
 
% Primary Function
function result = adder(x,y)
result = x+y;
 
% Calling Sub function
print(result);
end
 
% Sub function
function print(result)
fprintf('The addition of given two number is %d',result);
end

Guarde el código anterior con el nombre de función principal adder.m y observe el resultado llamándolo desde el símbolo del sistema.

Producción:

Sumar dos números

Funciones anidadas

A diferencia de las subfunciones, las funciones anidadas se definen dentro de las funciones principales. El alcance de una función anidada está dentro del archivo. No se puede acceder a la función anidada desde fuera del archivo. Todas las funciones anidadas que se definen dentro del cuerpo de la función principal pueden acceder al espacio de trabajo de la función principal.

MATLAB

% A MATLAB program to illustrate nested functions
 
% Primary Function
function result = adder(x,y)
result = x+y;
 
% Nested Function
function print(result)
fprintf('The sum of two numbers added in the nested function %d',result);
end
 
% Calling Nested Function
print(result);
end

Guarde el código anterior con el nombre de archivo principal adder.m y observe el resultado llamando a la función.

Producción:

Resultado

Funciones Privadas

El nombre en sí sugiere que estas funciones son privadas y solo serán visibles para funciones/archivos limitados. Estos archivos de funciones se almacenan en una subcarpeta separada llamada private. Generalmente, no podemos acceder a archivos que no están en la ruta/carpeta actual. Pero esto funciona para funciones privadas. Estas funciones residen en subcarpetas y son accesibles desde la carpeta principal y la propia carpeta privada. Ahora profundicemos en algún ejemplo para entender mejor el concepto.

Ejemplo:

MATLAB

% A MATLAB program to illustrate
% private functions
 
% Adder Function
function result = adder(x,y)
result = x+y;
 
% Calling private function
print(result);
end

Guarde el código anterior como adder.m en una carpeta separada y cree una carpeta más llamada privada.

MATLAB

% A MATLAB program to illustrate
% private functions
 
% private function
function print(result)
fprintf('The sum of two numbers added in the nested function is %d',result);
end

Guarde el código anterior como print.m y guárdelo en la carpeta privada.

MATLAB

% A MATLAB program to illustrate
% private functions
 
% Subtractor Function
function result = adder(x,y)
result = x-y;
 
% Calling private function
print(result);
end

Guarde el código anterior como subtractor.m y guárdelo fuera de la carpeta principal. Ahora observemos la salida accediendo a las funciones anteriores.

Producción:

Llamar a la función privada desde la función sustractor

En el caso anterior, puede observar el error cuando intentamos acceder a funciones privadas desde una ubicación distinta a la carpeta principal.

Llamar a la función privada desde la función de sumador

El programa se compiló con éxito y dio el resultado cuando intentamos acceder a la función privada desde la función sumadora que se almacena en la carpeta principal. Uno debe verificar la ruta del archivo actual mientras trabaja en funciones privadas.

Publicación traducida automáticamente

Artículo escrito por pavan_rachapudi 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 *