Un bloque de código que está organizado de tal manera que es reutilizable para todo el programa. Las funciones se utilizan para reducir los esfuerzos realizados al escribir código y hacer que el programa sea breve y fácilmente comprensible.
Hay diferentes sintaxis para declarar una función en diferentes lenguajes de programación. En este artículo, giraremos específicamente en torno a la sintaxis de declarar una función en MATLAB.
Declaración de función en MATLAB:
Matlab posee diferentes tipos de funciones. Algunas funciones se definen en unas pocas líneas, mientras que otras toman el programa completo nombrado sobre la función para su declaración.
Sintaxis:
function [i1,i2,...,in] = func_dec(o1,o2,...,om)
Ahora vemos el programa MATLAB. En este programa, el nombre de la función es funx_dec y, por lo tanto, debe guardar el archivo con el mismo nombre, es decir, func_dec.m. Aquí, los parámetros de entrada son i1, i2, i3,…, in, y los parámetros de salida son o1, o2, o3,…, om. Entendamos esta sintaxis a través de la implementación práctica.
Para ello, creamos una función para encontrar el máximo entre tres números.
Ejemplo 1:
Matlab
% MATLAB program for function function [ans] = greatest_no(x,y,z) if x > y if x>z ans = x; else ans = z; end else if y>z ans= y; else ans=z; end end end
Producción:
Funciones anónimas:
La función anónima es una de las herramientas más poderosas de MATLAB, ya que podría definir una función sin un archivo M. Las funciones anónimas en MATLAB, a diferencia de las funciones normales, se asocian en una variable, no en archivos. Cuando declara una variable para una función anónima, el tipo de datos de esa variable en particular es function_handle.
Como es una función anónima cuyo valor se almacenará en una variable y, por lo tanto, solo podría haber una salida, sin embargo, podría haber muchas entradas para ella. Como la función está escrita en una sola línea y, por lo tanto, contiene solo una declaración ejecutable. Sin embargo, para ejecutar más de una declaración, puede usar una función temporal dentro de la función anónima.
Sintaxis:
func_name = @(inp_argu)math_exp // The @ operator is used to initialize anonymous functions and handles function .
Comprendamos la sintaxis de la función anónima usando un ejemplo de función de búsqueda de cubo:
Ejemplo 2:
Matlab
% MATLAB code for anonymous function cub = @(x) x.^3;
Producción:
Aquí, la sintaxis es que la inicialización de la función anónima se realiza con ‘@’, seguido del parámetro de entrada x, escrito entre paréntesis ‘( )’, y luego se escribe la declaración que se ejecutará.
También puede usar las variables que se declararon anteriormente en su función anónima. Los valores persisten incluso si borra las variables, después de la declaración de la función anónima. Entendamos esto por la siguiente ecuación de parábola.
Ejemplo 3:
Matlab
% MATLAB code for function % variable declaration a = 3 b = 1 c = 43 para = @(x) a*(x*x) + b*x +c % parabola equation clear a b c
Producción:
Podemos usar la función anónima tanto en la ventana de la línea de comandos, como también podemos guardarla para cargarla más tarde llamándola mientras ejecutamos otros programas o a través de la línea de comandos. Si una función se va a usar un número limitado de veces, entonces las funciones anónimas son geniales. También se utiliza para construir funciones superiores.
Ahora comprendamos los diferentes usos de las funciones anónimas de Matlab.
Funciones anónimas de ninguna variable:
Podemos usar la función anónima de Matlab sin siquiera pasar una sola variable. Para tales funciones anónimas, deje los paréntesis() en blanco.
Ejemplo 4:
Matlab
% MATLAB code for no variable anonymous function print = @() disp("This is an anonymous function."); print();
Producción:
ans: This is an anonymous function.
Aquí, no hemos usado ninguna variable en la entrada o incluso en la función. En esta función, ni siquiera hemos utilizado ninguna variable en la función, sin embargo, podríamos asignar cualquier valor evaluándolo también.
Funciones anónimas de una variable:
Usar la función Matlab sin variable no es conveniente en absoluto. No necesitamos que suceda lo mismo una y otra vez, en realidad necesitamos realizar algunos cálculos a lo largo del tiempo. Para estos, necesitamos poner algunas variables entre paréntesis. Tuvimos nuestro ejemplo anterior de variable cub, veamos otro ejemplo de búsqueda usando una función anónima.
Ejemplo 5:
Matlab
% MATLAB code with variable expression = @(x) x*sqrt(x); expression(4)
Producción:
ans: 8
Función anónima con más de una variable:
En ciertos casos, es necesario pasar y evaluar más de una variable. Para tales casos, podemos pasar más de una variable en la función Anónima para evaluar. Evaluemos la expresión {x^3+ y^2 – z} usando una función anónima.
Ejemplo 6:
Matlab
% MATLAB Code anonymous function with more than one variable expression = @(x,y,z) x.*3+y.*2-z; expression(12,5,19)
Producción:
ans = 27
Función anónima anidada:
A veces necesitamos realizar más de una línea de evaluación de código, en tales casos, necesitamos usar la función anónima anidada. La función anónima anidada evalúa primero la función interna y luego la externa da la salida. Entendamos tal rey de funciones con un ejemplo de resolución de una integral definida \int_{1}^{6} (12x^3 -9x^2+2) dx.
Ejemplo 7:
Matlab
% MATLAB Code for Nested anonymous function expression = @() integral(@(x) (12*x.^3 - 9*x.*2 + 2),1,6) expression = function_handle with value: @()integral(@(x)(12*x.^3-9*x.*2+2),1,6)
Producción:
ans = 3580
Pasar una función anónima como identificador de función a otras funciones:
Para las construcciones de funciones superiores, podemos pasar una función anónima como identificador de función a otras funciones. Por ejemplo, cree un identificador de función con el parámetro de entrada como func (salida de la función anónima) y x.
Ejemplo 8:
Matlab
function y = functionHandle(fun,x) fun = fun(123); y = fun * x; end
Producción:
>> functionHandle(@(x) sqrt(x), 12) ans = 133.0864
Publicación traducida automáticamente
Artículo escrito por geeky01adarsh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA