exponenta event banner

function_handle

Дескриптор для функционирования

Описание

Дескриптор функции - это тип данных MATLAB ®, представляющий функцию. Типичным использованием дескрипторов функций является передача функции другой функции. Например, можно использовать дескрипторы функций в качестве входных аргументов для функций, которые вычисляют математические выражения в диапазоне значений. Другие типичные виды использования функциональных дескрипторов:

  • Определение функций обратного вызова (например, обратного вызова, который реагирует на событие пользовательского интерфейса или взаимодействует с аппаратным обеспечением сбора данных).

  • Создание дескрипторов для функций, определенных как встроенные, а не хранимые в файле программы (анонимные функции).

Создание

Создайте дескриптор функции с помощью @ оператор. Дескрипторы функций могут представлять именованные или анонимные функции.

  • Именованные дескрипторы функций представляют функции в существующих файлах программ, включая функции, являющиеся частью MATLAB, и функции, создаваемые с помощью function ключевое слово. Чтобы создать дескриптор для именованной функции, перед именем функции введите @.

    Например, создайте маркер перемещения для sin функция, а затем использовать fminbnd чтобы найти значение x, которое минимизирует sin (x) в диапазоне от 0 до 2 δ:

    f = @sin;
    m = fminbnd(f,0,2*pi);
  • Дескрипторы анонимных функций (часто называемые анонимными функциями) представляют собой одиночные встроенные исполняемые выражения, возвращающие один вывод. Чтобы определить анонимную функцию, заключите имена входных аргументов в скобки сразу после @ , а затем укажите исполняемое выражение.

    Например, создайте дескриптор анонимной функции, которая вычисляет выражение x2 y2:

    f = @(x,y) (x.^2 - y.^2);

    Анонимные функции могут принимать несколько входов, но возвращают только один выход.

Примеры

свернуть все

В файле в текущей папке создайте функцию с именем cubicPoly принимает входные данные для вычисления кубического многочлена x3 + x2 + x + 1.

function y = cubicPoly(x)
y = x.^3 + x.^2 + x + 1; 
end

Поиск интеграла cubicPoly от 0 кому 1, передайте ручку в cubicPoly функция для integral.

q = integral(@cubicPoly,0,1)
q = 2.0833

Создать маркер перемещения f анонимной функции, которая вычисляет кубический многочлен x3 + x2 + x + 1 для заданного значения x.

f = @(x) x.^3 + x.^2 + x + 1;

Поиск интеграла анонимной функции из 0 кому 1, передайте его ручку integral.

q = integral(f,0,1)
q = 2.0833
Представлен до R2006a