MATLAB Answers

0

How it is possible to pass variables from the script into a Callback function?

Asked by Parham Ebrahimi on 4 Jul 2019
Latest activity Commented on by Parham Ebrahimi on 4 Jul 2019
I have written the following code in which couple of checkboxes will be generated on a plot.
Now, I want to make it in a way that for every checkbox, a specific plot is being shown if the checkbox is checked by the user.
The problem is I can not use the variables such as my loop index inside the Callback function.
I would appreciate if someone could help me.
for i=1:AnSwer
cellwithstruct=d.channels(i);
chkbox=uicontrol('Style','checkbox','String',cellwithstruct{1}.name,'position',[10 25*(i-1) 60 20], ...
'Callback',@myCallbackfunc);
plot(time_vector,d.samples(i,:));grid minor;%This is the plot that I want to use inside the Callback function
end
The format for callback function is:
function myCallbackfunc(hObject, ~, ~)
if (get(hObject,'Value') == get(hObject,'Max'))
%The plot should be done here;
else
%The plot should be erased here;
end
end

  4 Comments

Show 1 older comment
"The problem is I can not use the variables such as my loop index inside the Callback function."
Why not? The MATLAB documentation explains how:
You could define use nested functions, or an anonymous function, as Adam showed:
'blahblahcallback',@(src,evt) myCallbackfunc(src,A,B,C)
or use the compact and efficient syntax shown in the help:
'blahblahcallback',{@myCallbackfunc,A,B,C}

Sign in to comment.

0 Answers