Matlab figure(s) suppression not working
6 views (last 30 days)
I have some issue suppressing the figure(s) in Matlab. I referred to these solutions Figure suppression 1 and Figure suppression 2.
I am using Matlab 2017b. First, I used both commands at the top of my main.m file:
set(groot, 'DefaultFigureVisible', 'off');
set(0, 'DefaultFigureVisible', 'off');
But, no help. Figures are still showing up while running the main. Please note that I have figure(s) callback inside few functions. In addition, I have a waitbar command running. While starting in cmd, if I use:
Figures including the Waitbar are not displayed. Is there any way I can only suppress the figure(s) running in a loop?
Walter Roberson on 18 May 2020
It is not possible to prevent figures from displaying when figure() is called. When figure() is called to create a new figure, and when figure() is called to bring a figure into focus, then in both cases, the figure is always made visible, even if only briefly.
The only way to prevent this is to be running in a mode that cannot display graphics. For example if you have the Parallel Computing Toolbox, you could run the graphics on a parallel process, as those processes cannot affect the graphic output. You can still render and saveas() or print() inside those processes (though I do not promise that all graphics effects can be used.)
Seren on 15 Feb 2021
Edited: Seren on 15 Feb 2021
In my own scripts, I avoid using
set(groot, 'DefaultFigureVisible', 'off|on')
to "control" the displaying of figures. Using 'visible', 'off|on' in a figure statement, e.g.:
figure ('visible','off','name','Fig. 1', 'NumberTitle','off','position', [200 486 1235 428]);