save GUI fig by name from edit text

6 次查看(过去 30 天)
Hi
I am trying to save a figure in GUI, I want when the user click on a push button the below window appear.
I applied the follwoing function:
filter = {'*.m';'*.emf';'*.*'};
[file, path] = uiputfile(filter);
but when I press (save) nothing is saved. The problem is how to connect my figure to the above function.
  4 个评论
Rik
Rik 2019-11-15
Note that copying the figure is not going to copy the callbacks, so you will end up with a figure that is only a visual copy of your GUI but no longer has any functionality.
Adam Danz
Adam Danz 2019-11-15
I was worried about that too but it turns out that the goal was to copy the embedded axes onto an external figure.

请先登录,再进行评论。

采纳的回答

Adam Danz
Adam Danz 2019-11-15
Place this code in a callback function designed to save the figure. See inline comments for details.
newFig = figure(); % Create a new parent figure
newAx = copyobj(handles.axes1, newFig); % Copy your GUI axis to the new figure
% ^^^^^^^^^^^^^ Put your axis handle here
% Reposition the axis to default position within the new figure
newAx.Units = 'Normalize';
newAx.Position = [.13, .11, .76, .82];
% Ask user for path and filename
[file, path] = uiputfile('.fig');
% Save figure and print out a confirmation.
savefig(fullfile(path,file));
fprintf('Figure saved: %s\n', file) % optional
  2 个评论
Adam Danz
Adam Danz 2019-11-15
Abdullah Alraigi's answer moved here as a comment.
Thx adam
it works as wanted
Adam Danz
Adam Danz 2019-11-15
Just a small request - in the future, try to use the comments section for discussion and reserve the answer section for answers.
Glad I could help! ;)

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Interactive Control and Callbacks 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by