Save (Axes) As in GUI
조회 수: 3 (최근 30일)
이전 댓글 표시
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
채택된 답변
Ankit
2019년 11월 25일
편집: Ankit
2019년 11월 25일
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
Ankit
2019년 11월 25일
I updated the answer based on your feedback! You can add the file extension based on your requirements!
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Migrate GUIDE Apps에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!