About passing the parameter

Hi, I would appreciate if someone answer me this question.
I am developing the GUI which calls one function called fun1.
Fun1 will get one of the value from uicontrol, say variable a.
But I have a another function called fun2.
I tried to use a in fun2 but I got the error, structure is like this
Func_main()
Uicontrol(...,callback,"fun1") Fun1() a = get.value End
Fun2() Disp(a); End
End
How can I pass the parameter from one function to another?
Sorry for so naive question but thanks for your help

Respuestas (1)

Jan
Jan el 5 de Abr. de 2017
Editada: Jan el 5 de Abr. de 2017

0 votos

You can store the value in the "handles" struct:
function Main
hFigure = figure;
uicontrol(..., 'Callback', @Callback1);
uicontrol(..., 'Callback', @Callback2);
handles.a = []; % Default value
guidata(hFigure, handles); % Store handles struct in the figure
end
function Callback1(hObject, EventData)
handles = guidata(hObject); % Get struct from figure
handles.a = get_value() % Insert value
guidata(hObject, handles); % Put struct back to figure
end
function Callback2(hObject, EventData)
handles = guidata(hObject); % Get struct from figure
disp(handles.a)
end
This is a frequently asked question, I esitmate 2 times per day. Search in the forum for "share data between callbacks".

2 comentarios

Joseph Cheng
Joseph Cheng el 5 de Abr. de 2017
Ah... I always forget that this works outside of GUIDE. (deleted my submission).
k38
k38 el 5 de Abr. de 2017
Hi Jan, thank you very much for your answer, I was working on the project and I struggled with this but you really saved me!
Once again, thank you!!

La pregunta está cerrada.

Etiquetas

Preguntada:

k38
el 4 de Abr. de 2017

Cerrada:

el 20 de Ag. de 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by