FSURF   Plot 3-D surface
    FSURF(FUN) creates a surface plot of the function FUN(X,Y). FUN is plotted over
    the axes size, with a default interval of -5 < X < 5, -5 < Y < 5.
 
    FSURF(FUN,INTERVAL) plots FUN over the specified INTERVAL instead of the
    default interval.  INTERVAL can be the vector [XMIN,XMAX,YMIN,YMAX] or the
    vector [A,B] (to plot over A < X < B, A < Y < B).
 
    FSURF(FUNX,FUNY,FUNZ) plots the parametric surface FUNX(U,V),
    FUNY(U,V), and FUNZ(U,V) over the interval -5 < U < 5 and
    -5 < V < 5.
 
    FSURF(FUNX,FUNY,FUNZ,[UMIN,UMAX,VMIN,VMAX]) or
    FSURF(FUNX,FUNY,FUNZ,[A,B]) uses the specified interval.
 
    FSURF(AX,...) plots into the axes AX instead of the current axes.
 
    H = FSURF(...) returns a handle to the surface object in H.
 
    Examples:
       fsurf(@(x,y) x.*exp(-x.^2-y.^2))
       fsurf(@(x,y) besselj(1,hypot(x,y)))
       fsurf(@(x,y) besselj(1,hypot(x,y)),[-20,20]) % this can take a moment
       fsurf(@(x,y) sqrt(1-x.^2-y.^2),[-1.1,1.1])
       fsurf(@(x,y) x./y+y./x)
       fsurf(@peaks)
 
       f = @(u) 1./(1+u.^2);
       fsurf(@(u,v) u, @(u,v) f(u).*sin(v), @(u,v) f(u).*cos(v),[-2 2 -pi pi])
 
       A = 2/3;
       B = sqrt(2);
       xfcn = @(u,v) A*(cos(u).*cos(2*v) + B*sin(u).*cos(v)).*cos(u) ./ (B - sin(2*u).*sin(3*v));
       yfcn = @(u,v) A*(cos(u).*sin(2*v) - B*sin(u).*sin(v)).*cos(u) ./ (B - sin(2*u).*sin(3*v));
       zfcn = @(u,v) B*cos(u).^2 ./ (B - sin(2*u).*sin(3*v));
       h = fsurf(xfcn,yfcn,zfcn,[0 pi 0 pi]);
 
    If your function has additional parameters, for example k in myfun:
       %------------------------------%
       function z = myfun(x,y,k1,k2,k3)
       z = x.*(y.^k1)./(x.^k2 + y.^k3);
       %------------------------------%
    then you may use an anonymous function to specify that parameter:
       fsurf(@(x,y)myfun(x,y,2,2,4))
 
    See also FPLOT, FPLOT3, FMESH, FIMPLICIT3, SURF, VECTORIZE, FUNCTION_HANDLE.
    Documentation for fsurf
       doc fsurf
    Other uses of fsurf
       symbolic/fsurf