From: <HIDDEN>
Newsgroups: comp.soft-sys.matlab
Subject: Re: save figures without displaying
Date: Thu, 21 Apr 2011 01:07:05 +0000 (UTC)
Organization: Bedford Institute of Oceanography
Lines: 58
Message-ID: <ionvvp$j8a$>
References: <io6jkk$5em$>
Reply-To: <HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: 1303348025 19722 (21 Apr 2011 01:07:05 GMT)
NNTP-Posting-Date: Thu, 21 Apr 2011 01:07:05 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 1149396
Xref: comp.soft-sys.matlab:723040

"Oliver" wrote in message <io6jkk$5em$>...
> 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.