It’s useful to know if the Matlab or GNU Octave GUI is open for a number of use cases, including
- pause for each group of a large set of plots–only if user is there to look at them, otherwise save to disk and close thereafter.
- increase (or decrease) verbosity of print statements or if console output is logged, depending on if it batch mode or not.
We don’t use the Matlab ≥ R2019a
batchStartupOptionUsed as it doesn’t detect the
-nodesktop case often used for unattended batch processing.
Save this code to
isinteractive.m for your project.
%!assert(islogical(isinteractive)) function isinter = isinteractive() %% tell if the program is being run interactively or not. % helpful to say pause after making groups of plots--only if user has GUI desktop open. % don't use batchStartupOptionUsed as it neglects the "-nodesktop" case persistent inter; if isempty(inter) if isoctave inter = isguirunning; else % matlab, this test below doesn't work for Octave inter = usejava('desktop'); end end isinter=inter; % has to be a separate line/variable for matlab end