Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit:

Guide Question

Asked by Melvin on 7 Mar 2012

Here is the case using GUIDE. I have a pop-up menu with 5 choices(A B C D & E). I also have a push button that do some stuffs. If I run the GUI,I will first choose from the 5 in the pop up menu. Each choice uploads a .mat file in which I retrieve the variable such that:

fullFileName = fullfile(folder, baseFileName)

storedStructure = load(fullFileName);

x = storedStructure.x;

y = storedStructure.y;

Now, when I click that push button I want that push button to retrieve or use x and y for some stuffs directly from the pop up menu function. What code should I write under the callback function of the push button so that that push button will be able to get or retrieve x and y?

If there is something you don't understand in my query just feel free to ask. Thank you very much




No products are associated with this question.

1 Answer

Answer by Jan Simon on 7 Mar 2012
Accepted answer

You can store the values of x and y in the handles struct:

handles = guidata(popupMenuHandle);
fullFileName = fullfile(folder, baseFileName)
storedStructure = load(fullFileName);
handles.x = storedStructure.x;
handles.y = storedStructure.y;
guidata(popupMenuHandle, handles);

Then in the callback of the button:

handles = guidata(buttonHandle);
plot(handles.x, handles.y);

Other methods:

  • You can store the data in the UserData of the figure
  • or by setappdata and getappdata, but this is what happens internalöly in guidata also.


Melvin on 7 Mar 2012

Thank you sir :)

Melvin on 7 Mar 2012

I have another question.
Are the codes popupMenuHandle and buttonHandle called tags?

I don't get these part exactly,
handles = guidata(popupMenuHandle);
guidata(popupMenuHandle, handles);
handles = guidata(buttonHandle);

Thank you in advance sir. :)

Jan Simon

Contact us