Cree una función en MATLAB

Ammar Ali 25 noviembre 2021
Cree una función en MATLAB

Este tutorial discutirá la creación de funciones usando la variable function en MATLAB.

Cree una función usando la variable function en MATLAB

Una función en Matlab consta principalmente de tres cosas: salida, entrada y nombre de la función. Para definir una función, usamos la función variable y luego definimos las salidas, el nombre de la función y las entradas de la función. Después de eso, escribiremos nuestro código dentro de la función. El nombre de la función debe comenzar con un carácter alfabético y el nombre de una función puede contener números, dígitos y guiones bajos. Para indicar el final de una función, podemos usar la variable end. Por ejemplo, vea el código a continuación.

function outputs = function_Name(inputs)
    Your code
end

Una función solo puede tener una salida. Por ejemplo, definamos una función que aceptará un array de números, y la salida de la función será el promedio del array. Vea el código a continuación.

vect = [1 3 5]
averg = average(vect)


function a = average(v)
a = mean(v);
end

Producción :

vect =

     1     3     5


averg =

     3

Una función también puede tener dos salidas. Por ejemplo, definamos una función que aceptará un array y nos dará la media del array y la desviación estándar. Vea el código a continuación.

vect = [1 3 5]
[averg, stanD] = average(vect)


function [a,s] = average(v)
a = mean(v);
s = std(v);
end

Producción :

vect =

     1     3     5


averg =

     3


stanD =

     2

Podemos definir una función en un archivo de script, pero tenemos que definirla al final del código. También puede definir varias funciones en un solo archivo, y todas las funciones deben estar al final del código. Una función también puede llamar a otra función. Por ejemplo, puede definir dos funciones y la segunda función puede llamar a la primera función. También podemos definir funciones con validación de entrada para que podamos verificar las entradas. Por ejemplo, definamos una función que verificará la entrada, ya sea un número entero o no, y si es un número entero, realizará la operación; de lo contrario, enviará un error. Podemos hacer eso usando los argumentos variables. Vea el código a continuación.

vect = 'a';
[averg, stanD] = average(vect)


function [a,s] = average(v)
arguments
        v {mustBeNumeric, mustBeFinite}
    end
a = mean(v);
s = std(v);
end

Producción :

Error using Untitled>average
Invalid argument at position 1. Value must be numeric.

Error in Untitled (line 3)
[averg, stanD] = average(vect)

En el código anterior, hemos pasado una cadena en lugar de un array numérica, y Matlab ha mostrado un error que dice que el valor debe ser numérico. Tenga en cuenta que cuando llama a una función, debe proporcionar las entradas y salidas específicas. Por ejemplo, si definimos una función con dos entradas y dos salidas, deberíamos definir dos entradas y dos salidas durante la llamada a la función; de lo contrario, mostrará un error, pero si desea definir una función con un número variable de salidas y entradas. Podemos hacer eso usando la variable varargin para definir las entradas variables de una función. Podemos usar la variable nargin que nos dice cuántas entradas ingresó el usuario. Después de eso, podemos especificar condiciones para las entradas. Por ejemplo, podemos definir requisitos de que si el usuario ingresa una entrada, esta será la salida, y si el usuario ingresa dos entradas, entonces esta será la salida, y así sucesivamente. Por ejemplo, definamos una función que nos dará el número de entradas ingresadas por el usuario. Vea el código a continuación.

NumInputs('a',2,"start")

function NumInputs(varargin)
    disp("Number of inputs: " + nargin)
    celldisp(varargin)
end

Producción :

Number of inputs: 3
 
varargin{1} =
 
a
 
 
varargin{2} =
 
     2

 
 
varargin{3} =
 
start

También podemos definir salidas variables en una función utilizando la variable varargout, y podemos realizar un seguimiento de cuántas salidas ha definido el usuario utilizando la variable nargout. Por ejemplo, definamos una función que nos dará la media y la desviación estándar. Si el usuario define solo una salida, la función devolverá solo la media del array. Si el usuario define dos variables de salida, la función devolverá la desviación estándar y la media del array. Vea el código a continuación.

v = [1 2 6];
[m]= AVGSTD(v)
[mean,st] = AVGSTD(v)

function [m,varargout] = AVGSTD(v)
    m = mean(v);
    if(nargout>1)
        varargout{1} = std(v);
    end
end

Producción :

m =

     3


mean =

     3


st =

    2.6458

En el código anterior, llamamos a la función AVGSTD() dos veces, la primera vez con una sola salida y la segunda vez con dos salidas. En la primera llamada, la función solo devolvió la media, pero en la segunda llamada, la función devolvió la media y la desviación estándar. También podemos validar el número de salidas usando el argumento variable. Por ejemplo, si el usuario intenta ingresar más de dos variables en la salida, podemos mostrarle un error de que esta función solo acepta dos salidas. También podemos definir funciones reutilizables en Matlab, que se almacenarán en un archivo, y podemos llamarlas usando el nombre del archivo. Para definir tal función, solo tenemos que nombrar el archivo Matlab con el nombre de la función. Por ejemplo, si la función tiene el nombre promedio, el archivo Matlab debe tener el mismo nombre. Para llamar a la función, tenemos que crear otro archivo de script en el mismo directorio donde se ha colocado el archivo de función, y podemos llamar a la función usando su nombre dentro del archivo de script.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Artículo relacionado - MATLAB Function