|On this page…|
Graphics functions frequently use handles to access property values and to direct graphics output to a particular target. MATLAB® provides utility routines that return the handles to key objects (such as the current figure and axes). In function files, however, these utilities might not be the best way to obtain handles because:
Querying MATLAB for the handle of an object or other information is less efficient than storing the handle in a variable and referencing that variable.
The current figure, axes, or object might change during function execution because of user interaction.
It is good practice to save relevant information about the MATLAB state in the beginning of your file. For example, you can begin a script with
cax = newplot; cfig = get(cax,'Parent'); hold_state = ishold;
rather than querying this information each time you need it. Remember that utility commands like ishold obtain the values they return whenever called. (The ishold command issues a number of get commands and string compares (strcmp) to determine the hold state.)
If you are temporarily going to alter the hold state within the code, save the current values of the NextPlot properties so you can reset them later:
ax_nextplot = lower(get(cax,'NextPlot')); fig_nextplot = lower(get(cfig,'NextPlot')); . . . set(cax,'NextPlot',ax_nextplot) set(cfig,'NextPlot',fig_nextplot)