Чтобы использовать свойства коллбэка, присвойте код коллбэка свойству. Используйте один из следующих методов:
Указатель на функцию, который ссылается на функцию, чтобы выполниться.
Массив ячеек, содержащий указатель на функцию и дополнительные аргументы
Вектор символов, который оценивает к допустимому MATLAB® выражение. MATLAB выполняет вектор символов в базовом рабочем пространстве.
При определении коллбэка, когда не рекомендуется вектор символов. Использование функции, заданной как указатель на функцию, позволяет MATLAB предоставить важную информацию вашей функции обратного вызова.
Для получения дополнительной информации смотрите Синтаксис Функции обратного вызова.
Графические функции обратного вызова должны принять по крайней мере два входных параметра:
Указатель объекта, коллбэк которого выполняется. Используйте этот указатель в своей функции обратного вызова, чтобы относиться к объекту коллбэка.
Структура данных о событиях, которая может быть пустой для некоторых коллбэков или содержать определенную информацию, которая описана в описании свойства для того объекта.
Каждый раз, когда коллбэк выполняется в результате определенного инициирующего действия, MATLAB вызывает функцию обратного вызова и передает эти два аргумента функции.
Например, задайте функцию обратного вызова под названием lineCallback
для линий, созданных plot
функция. С lineCallback
функция на пути MATLAB, используйте @
оператор, чтобы присвоить указатель на функцию ButtonDownFcn
свойство каждой линии, созданной plot
.
plot(x,y,'ButtonDownFcn',@lineCallback)
Задайте коллбэк, чтобы принять два входных параметра. Используйте первый аргумент, чтобы относиться к определенной линии, коллбэк которой выполняется. Используйте этот аргумент, чтобы установить линию Color
свойство:
function lineCallback(src,~) src.Color = 'red'; end
Второй аргумент пуст для ButtonDownFcn
'callback'. ~
символ указывает, что этот аргумент не используется.
Чтобы задать дополнительные входные параметры для функции обратного вызова, добавьте аргументы в функциональное определение, поддержав правильный порядок параметров по умолчанию и дополнительных аргументов:
function lineCallback(src,evt,arg1,arg2) src.Color = 'red'; src.LineStyle = arg1; src.Marker = arg2; end
Присвойте массив ячеек, содержащий указатель на функцию и дополнительные аргументы к свойству:
plot(x,y,'ButtonDownFcn',{@lineCallback,'--','*'})
Можно использовать анонимную функцию, чтобы передать дополнительные аргументы. Например:
plot(x,y,'ButtonDownFcn',... @(src,eventdata)lineCallback(src,eventdata,'--','*'))
Для получения информации об использовании анонимных функций см. Анонимные функции.
Для получения информации об использовании методов класса как коллбэки смотрите Методы класса для Графических Коллбэков.
Для получения информации о как выполнение нескольких обратных вызовов твердости MATLAB, смотрите BusyAction
и Interruptible
свойства объектов, задающих коллбэки.
Можно присвоить коллбэк свойству конкретного объекта, или можно задать коллбэк по умолчанию для всех объектов того типа.
Задавать ButtonDownFcn
для всех объектов линии, набор значение по умолчанию на корневом уровне.
Используйте groot
функция, чтобы задать корневой уровень иерархии объектов.
Задайте функцию обратного вызова, которая находится на пути MATLAB.
Присвойте указатель на функцию, ссылающийся на эту функцию к defaultLineButtonDownFcn
.
set(groot,'defaultLineButtonDownFcn',@lineCallback)
Значение по умолчанию остается присвоенным для сеанса работы с MATLAB. Можно сделать присвоение значения по умолчанию в startup.m
файл.