In a matlab figure, in order to switch between vertical axis zooming and horizontal axis zooming, the user must click on Tools/Option/..., or right-click on the figure and to chose the zoom mode, which can be painful if one needs to switch between zooming modes very often. This function solves this issue by changing the zooming mode depending on the mouse position. If the mouse is over the vertical/horizontal axis the vertical/horizontal axis zoom is activated. If the mouse is in the center of the plot, both axis are activated.
The function takes a figure as input arguments. This figure must have axes already before calling the function. Also, the Units property of both the figure and its axes should be the same.
Example of use:
f = figure;
a = axes(f);
a.Units = f.Units;
Then click on the zoom icon, and move the mouse over the vertical/horizontal axis, and
over the center of the plot. You will see the zooming mode change automatically. Zoom with the mouse wheel.
Thibaut Jacqmin (2020). Zoom mode (h-axis, y-axis or both axis) set by mouse position (https://www.mathworks.com/matlabcentral/fileexchange/62723-zoom-mode-h-axis-y-axis-or-both-axis-set-by-mouse-position), MATLAB Central File Exchange. Retrieved .
Refine mouse position condition.