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.)