function_handle

Указатель на функцию

Описание

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

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

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

Создание

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

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

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

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

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

    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