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: 18   Last Post: Sep 2, 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: 148
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! :)


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-2015. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.