MATLAB Answers

0

Is it possible to disable plot/figure generation in an entire script?

Asked by Andrew Reibold on 27 Oct 2014
Latest activity Commented on by gilles miet on 7 Dec 2018
This is more of a trivial request, but it would be convenient for me if there was a setting I could change before running a script that simply squelches all figure and plot creation.
Does anyone know if this type of thing exists?

  1 Comment

Hi, In case you know which display functions are called, simply overload them by defing new dummy functions with same name and varargin.
e.g. for plot function:
Create a plot.m in current directory or in any custom path directory as follows:
function plot(varargin)
disp('doing nothing');
end
Ignore matlab warnings telling you you overload a Matlab built-in function (you are doing it on purpose)
When plot is called you get:
>> x=randn(1,10);
>> plot(x)
doing nothing
>>

Sign in to comment.

1 Answer

Answer by Doug Hull on 27 Oct 2014
 Accepted Answer

A sneaky way of kind of sort of doing this is:
set(groot,'defaultFigureVisible','off')
To undo this:
set(groot,'defaultFigureVisible','on')
It means the new figures will be visible off. It kind of does what you are looking for, kind of.

  5 Comments

Nailed it.
Thanks for the strategy Doug! Thanks for tweaking it Sean!
Hi, I have a similar situation. I'm worried that that command will still compute the figures, and then not show them. Is that right?
The reasons I want to not plot my plots is because in some situations I don't want to perform the hefty computation.

Sign in to comment.