Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: save figures without displaying
Replies: 16   Last Post: Feb 11, 2014 1:14 PM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Yuri Geshelin

Posts: 147
Registered: 10/15/07
Re: save figures without displaying
Posted: Apr 20, 2011 9:07 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

"Oliver" wrote in message <io6jkk$5em$1@fred.mathworks.com>...
> Hi all, I've looked around for ages but cannot find a different solution. I fear there isn't one.
>
> Problem: I have a tool that batch processes data and creates loads (00's) of figures. I don't want them flashing up and getting in the way while the user is still trying to work on the machine.
>
> Current solution:
> set(fig, 'visible','off')
> saveas(fig,'file.fig','fig')
> close(fig)
>
> This is fine, however when trying to open the saved .fig file they remain invisible.
>
> I tried....
> set(fig, 'visible','off')
> saveas(fig,'file.fig','fig')
> set(fig, 'visible','on')
> close(fig)
>
> In the hope it wouldn't be displayed, but it is.
>
> Next idea is to open the .fig using fopen and edit the file manually to set visibility to on, then re-save the edited .fig, but the data format is unknown.
>
> Any ideas how to save invisible figures, but have them open as visible?


While seeking for a solution to my problem, I found a very easy solution to yours. It is much easier than the listener that I proposed.

A clue:

>> help open

. . . . . . . . . . . . . . . . . . . . .

OPEN is user-extensible. To open a file with the extension ".XXX",
OPEN calls the helper function OPENXXX, that is, a function
named 'OPEN', with the file extension appended.
. . . . . . . . . . . . . . . . . . . . .

The remedy:

1) Locate function OPENFIG and copy it to a directory, which is found on the path before the one, in which OPENFIG resides.
2) On the top of the code, find this line

visible = ''

(it goes after if nargin < 3)

and replace it with

visible = 'visible'

That&#8217;s it! :)

HTH

PS The solution by the other Oliver (to render all plots in the same figure) may not come in handy, because

(a) sometimes it is not easy to change the algorithm: the figure number may be a result of not trivial computation;
(b) a single figure will be seen all the time, while the objective is to get rid of all figures.




Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.