Save (Axes) As in GUI
2 views (last 30 days)
Show older comments
Hi,
I am using Matlab GUI (guide) to do some calculation and the results appear as a curve in figure (axes1). I would like to save the figure of this curve.
I created a push button (pushbutton1), and I inserted many different codes the problem with most of them are
- It saves the whole GUI window not only the (axes1)
- When the save window is opened to wirte the file name/path, if the user click on cancel it will break down and an eeror is appearing
Thx
0 Comments
Accepted Answer
Ankit
on 25 Nov 2019
Edited: Ankit
on 25 Nov 2019
Updated!
Based on your comment I updated the answer
function pushbutton_SaveasImg_Callback(hObject, eventdata, handles)
Fig1 = figure('Units','normalized','Position',[0.1 0.1 0.8 0.8]);
set(Fig1,'Visible','off');
find_leg = findobj(handles.axes4,'tag','legend'); % axes4 is the name of your Axes
% retrieve the legend strings
legendstr=get(find_leg,'String');
newAxes = copyobj(handles.axes4,Fig1); % Copy the appropriate axes
set(newAxes,'Units','normalized','Position',[0.1 0.1 0.8 0.8]);
% recreate the legend
legend(newAxes,legendstr,'Location','northeast');
% Save as Image file.
[FileName,PathName] = uiputfile( ...
{'*.jpg;*.tif;*.png;*.gif','All Image Files';...
'*.*','All Files (*.*)'});
% 2. When the save window is opened to write the file name/path,
% if the user click on cancel it will break down and an error is appearing
% below code avoid the error you are getting
if isequal(FileName,0) || isequal(PathName,0)
disp('User Clicked Cancel.')
else
disp(['User selected ',fullfile(PathName,FileName),...
' and then clicked Save.'])
saveas(Fig1, FileName);
close(Fig1);
end
2 Comments
Ankit
on 25 Nov 2019
I updated the answer based on your feedback! You can add the file extension based on your requirements!
More Answers (0)
See Also
Categories
Find more on Migrate GUIDE Apps in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!