функция

Объявите имя функции, входные параметры и выходные параметры

Синтаксис

function [y1,...,yN] = myfun(x1,...,xM)

Описание

пример

function [y1,...,yN] = myfun(x1,...,xM) объявляет функцию с именем myfun, который принимает, вводит x1,...,xM и возвращает выходные параметры y1,...,yN. Этот оператор объявления должен быть первой исполняемой строкой функции. Допустимые имена функций начинаются с буквенного символа и могут содержать буквы, числа или символы нижнего подчеркивания.

Можно сохранить функцию:

  • В функциональном файле, который содержит только функциональные определения. Имя файла должно совпадать с именем первой функции в файле.

  • В файле скрипта, который содержит команды и функциональные определения. Функции должны быть в конце файла. Файлы скрипта не могут иметь того же имени как функция в файле. Функции поддерживаются в скриптах в R2016b или позже.

Файлы могут включать несколько локальных функций или вложенных функций. Для удобочитаемости используйте ключевое слово end, чтобы указать на конец каждой функции в файле. Ключевое слово end требуется когда:

  • Любая функция в файле содержит вложенную функцию.

  • Функция является локальной функцией в функциональном файле, и любая локальная функция в файле использует ключевое слово end.

  • Функция является локальной функцией в файле скрипта.

Примеры

свернуть все

Задайте функцию в файле с именем average.m, который принимает входной вектор, вычисляет среднее число значений и возвращает единственный результат.

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

Вызовите функцию из командной строки.

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

Задайте скрипт в файле с именем integrationScript.m, который вычисляет значение подынтегрального выражения в и вычисляет область под кривой от 0 до. Включайте локальную функцию, которая задает подынтегральное выражение.

Примечание: Включая функции в скриптах требует MATLAB® R2016b или позже.

% 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

Задайте функцию в файле с именем stat.m, который возвращает среднее и стандартное отклонение входного вектора.

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

Вызовите функцию из командной строки.

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

Задайте две функции в файле с именем stat2.m, где первые вызовы функции второе.

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

Функциональный avg является локальной функцией. Локальные функции только доступны другим функциям в том же файле.

Вызовите функциональный stat2 из командной строки.

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

Представлено до R2006a

Была ли эта тема полезной?