Из результата, полученного для обратного вызова кнопки, получается, что обратный вызов был создан следующим образом (только для примера):
hButton = uicontrol(...,'Callback',{@button_callback,1,1,[1:6]});
где функция обратного вызова button_callback
определяется следующим образом:
function button_callback(hObject,eventdata,a,b,c)
...
end
Обратите внимание, что два дополнительных аргумента в списке входных аргументов для функции обратного вызова: hObject
(хэндл объекта, вызывающего обратный вызов) и eventdata
( структура данных события).
Если вы хотите вызвать дескриптор функции с 3 дополнительными аргументами, которые должны быть ему переданы (1
, 1
и массив 1 на 6), вам также необходимо передать аргументы для hObject
и eventdata
входы. Вот как будет выглядеть вызов функции (используя вашу переменную ans
):
ans{1}(hButton,[],ans{2:end});
Сначала вы получаете дескриптор функции из массива ячеек (ans{1}
), а затем вызываете его, используя скобки, как и любую другую функцию . Для hObject
вы можете передать дескриптор объекту uicontrol (или пустому значению, если оно не нужно), а для eventdata
вы можете просто передать пустое значение. Затем дополнительные значения берутся из массива ячеек в виде списка, разделенного запятыми (ans{2:end}
), и каждое из них передается функции в качестве отдельного дополнительного аргумента.