MATLAB Answers

GUI with multiple figures

63 views (last 30 days)
ARP
ARP on 23 Mar 2017
Commented: ARP on 27 Mar 2017
Hi all,
I am preparing a GUI to display two figures that I have created in a m.file. The two plots are the result of a series o calculations and number of variables.
The code for the figures is the following:
figure(1)
plot(y_axis,log_scale);
xlabel('Depth (mm)')
ylabel('Relative attenuation (dB)')
axis tight
figure (2)
imagesc(x_axis,y_axis,grayscale);
colormap(gray);
xlabel('Lateral length (mm)')
ylabel('Depth (mm)')
To start the GUI, I have defined a push button that runs the m.file. I have created axes1 and axes2 to allocate the plots.
Only works if I would have a single plot, as axes1 automatically detects the figure. To give instructions for each axes, I have created 2 push buttons. Here is what I write for each push button (only one showed for simplicity):
% --- Executes on button press in Plot1.
function Plot1_Callback(hObject, eventdata, handles)
% hObject handle to Plot1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
axes(handles.axes1)
plot(y_axis,log_scale);
xlabel('Depth (mm)')
ylabel('Relative attenuation (dB)')
axis tight
..and of course it does not work. I have seen similar questions to the topic, but they are different to my case since my plots originate from the m.file.
Any tips?
Thanks

  0 Comments

Sign in to comment.

Answers (2)

Nagini Venkata Krishna Kumari Palem
In my understanding the issue with your code is that the callback is not executed when the push button is clicked. I was looking at the code, after an initial check I think the callback was not invoked anywhere. You may make a call to the callback function in various ways, one of the way is as follows,
pushbutton.Callback = @(~,~,~)pushbutton_Callback(hObject,eventdata,handles);
Please refer to the link below if you need more information on callbacks.

  1 Comment

ARP
ARP on 27 Mar 2017
Thanks for the reply, but I don't fully understand your suggestion. I don't see how is that going to solve my problem . I create the axis in GUIDE, select create callback function, and then write the instructions for the plot under each callback functions. The push button should not be necessary. The plots should open wherever I assign them (axis1, axis2).
I can't figure out what is missing

Sign in to comment.


ARP
ARP on 27 Mar 2017
Thanks for the reply, but I don't fully understand your suggestion. I don't see how is that going to solve my problem . I create the axis in GUIDE, select create callback function, and then write the instructions for the plot under each callback functions. The push button should not be necessary. The plots should open wherever I assign them (axis1, axis2).
I can't figure out what is missing

  0 Comments

Sign in to comment.

Sign in to answer this question.


Translated by