www.gusucode.com > symbolic 源码程序 matlab案例代码 > symbolic/SurfaceSetAxisLabelsAndTicksInTermsOfPiExample.m

    %% Use LaTeX to Format Title, Axis Labels, and Ticks
% For $x$ and $y$ from $-2\pi$ to $2\pi$, plot the 3-D surface $y\sin(x) -
% x\cos(y)$. Store the axes handle in |a| by using |gca|. Display the axes box by using
% |a.Box| and set the tick label interpreter to |latex|.
%
% Create the x-axis ticks by spanning the x-axis limits at intervals of
% |pi/2|. Convert the axis limits to precise multiples of |pi/2| using |round| and get
% the symbolic tick values in |S|. Display the ticks by setting the |XTick| property of |a| to |S|.
% Create the LaTeX labels for the x-axis by using |arrayfun| to apply 
% |latex| to |S| and then concatenating |$|. Display the labels by
% assigning them to the |XTickLabel| property of |a|. 
% 
% Repeat these steps for the y-axis. Set the x- and y-axes labels and the
% title using the |latex| interpreter.

syms x y
f = y.*sin(x)-x.*cos(y);
fsurf(f,[-2*pi 2*pi])
a = gca;
a.TickLabelInterpreter = 'latex';
a.Box = 'on';
a.BoxStyle = 'full';

S = sym(a.XLim(1):pi/2:a.XLim(2));
S = sym(round(vpa(S/pi*2))*pi/2);
a.XTick = double(S);
a.XTickLabel = strcat('$',arrayfun(@latex, S, 'UniformOutput', false),'$');

S = sym(a.YLim(1):pi/2:a.YLim(2));
S = sym(round(vpa(S/pi*2))*pi/2);
a.YTick = double(S);
a.YTickLabel = strcat('$',arrayfun(@latex, S, 'UniformOutput', false),'$');

xlabel('x','Interpreter','latex');
ylabel('y','Interpreter','latex');
zlabel('z','Interpreter','latex');
title(['$' latex(f) '$ for $x$ and $y$ in $[-2\pi,2\pi]$'],'Interpreter','latex')