MATLAB: Are the zoom callbacks of the figure not restored when I save and reopen the figure in MATLAB 7.8 (R2009a)

figureloadMATLABpropertiesreopen

When I run the following code:
f = figure;
plot(1:10)
z1 = zoom(gcf);
set(z1,'ActionPostCallback','TMWtest')
saveas(f,'TMW_example_fig','fig')
close all
drawnow
open('TMW_example_fig.fig')
z2 = zoom(gcf);
get(z2,'ActionPostCallback')
The GET command returns the following:
ans =
[]
Why is the zoom callback not saved?

Best Answer

The ability to save zoom callbacks as part of the figure file is not available in MATLAB.
To work around this issue, you can use the "CreateFcn" callback (which is saved by the figure). We can use this callback to create the zoom callback automatically every time the figure is created.
Consider the following code:
f = figure;
plot(1:10)
set(f,'CreateFcn','z = zoom(gcf);set(z,''ActionPostCallback'',''TMWtest'')')
This code will automatically set the zoom callback "ActionPostCallback" to call "TMWtest.m", and this will happen every time the figure is opened.