Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

function

Declarar nombre de función, entradas y salidas

Descripción

ejemplo

function [y1,...,yN] = myfun(x1,...,xM) declara una función denominada myfun que acepta entradas x1,...,xM y devuelve salidas y1,...,yN. Esta instrucción de declaración debe ser la primera línea ejecutable de la función. Los nombres de función válidos empiezan por un carácter alfabético y pueden contener letras, números o guiones bajos.

Puede guardar su función:

  • En un archivo de función que solo contenga definiciones de función. El nombre del archivo debe coincidir con el nombre de la primera función del archivo.

  • En un archivo de script que contenga comandos y definiciones de función. Las funciones deben estar al final del archivo. Los archivos de script no pueden tener el mismo nombre que una función del archivo. Las funciones se admiten en scripts en la versión R2016b o posterior.

Los archivos pueden incluir varias funciones locales o funciones anidadas. Para mejorar la legibilidad, utilice la palabra clave end para indicar el final de cada función en un archivo. Se requiere la palabra clave end cuando:

  • Cualquier función del archivo contiene una función anidada.

  • La función es una función local dentro de un archivo de función, y cualquier función local del archivo utiliza la palabra clave end.

  • La función es una función local dentro de un archivo de script.

Ejemplos

contraer todo

Defina una función en un archivo denominado average.m que acepte un vector de entrada, calcule el promedio de los valores y devuelva un solo resultado.

function y = average(x)
if ~isvector(x)
    error('Input must be a vector')
end
y = sum(x)/length(x); 
end

Llame a la función desde la línea de comandos.

z = 1:99;
average(z)
ans =
    50

Defina un script en un archivo denominado integrationScript.m que calcule el valor del integrando en y calcule el área bajo la curva de 0 a . Incluya una función local que defina el integrando, .

Nota: La inclusión de funciones en scripts requiere MATLAB® R2016b o posterior.

% Compute the value of the integrand at 2*pi/3.
x = 2*pi/3;
y = myIntegrand(x)

% Compute the area under the curve from 0 to pi.
xmin = 0;
xmax = pi;
f = @myIntegrand;
a = integral(f,xmin,xmax)

function y = myIntegrand(x)
y = sin(x).^3;
end
y =

    0.6495


a =

    1.3333

Defina una función en un archivo denominado stat.m que devuelva la media y la desviación estándar de un vector de entrada.

function [m,s] = stat(x)
n = length(x);
m = sum(x)/n;
s = sqrt(sum((x-m).^2/n));
end

Llame a la función desde la línea de comandos.

values = [12.7, 45.4, 98.9, 26.6, 53.1];
[ave,stdev] = stat(values)
ave =
   47.3400
stdev =
   29.4124

Defina dos funciones en un archivo denominado stat2.m, donde la primera función llama a la segunda.

function [m,s] = stat2(x)
n = length(x);
m = avg(x,n);
s = sqrt(sum((x-m).^2/n));
end

function m = avg(x,n)
m = sum(x)/n;
end

La función avg es una función local. Las funciones locales solo están disponibles para otras funciones dentro del mismo archivo.

Llame a la función stat2 desde la línea de comandos.

values = [12.7, 45.4, 98.9, 26.6, 53.1];
[ave,stdev] = stat2(values)
ave =
   47.3400
stdev =
   29.4124

Introducido antes de R2006a