MATLAB Answers

save GUI fig by name from edit text

4 ビュー (過去 30 日間)
R Hebi
R Hebi 2019 年 11 月 15 日
編集済み: Rik 2019 年 11 月 15 日
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 件のコメント

表示 1 件の古いコメント
Adam Danz
Adam Danz 2019 年 11 月 15 日
Abdullah Alraigi,'s answer moved here as a comment
The figure is embeded with GUI
I used Guide
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.
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 件)

Community Treasure Hunt

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

Start Hunting!

Translated by