HOW TO DO MATLAB SURFACE PLOTS.^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Here's how to use the parametric description of T&F14.6 to make a nice surface plot in  MATLAB. Pages 118-125 in the Pratap MATLAB book explain this some (butuse more limited versions of the  SURFL and MESH commands). Say you want to call your two parameters u and v. For example say u and v represent phi and theta from spherical coordinates. First make u and v intoMATLAB vectors which have the desired range of values. The commands below give u and v 50 evenly spaced values in the range needed to cover the points on a sphere.u = linspace(0, pi, 50);v = linspace(0, 2*pi, 50);Now comes the clever command MESHGRID[U,V] = meshgrid(u,v);Meshgrid makes two arrays U and V.  Every row of U is u. Every column of V is v.   both U and V  have as many columns as the number of elements of u and as many rowsas the number of elements of v. To get the idea of what MESHGRID does type this command (or type HELP MESHGRID): [A, B] = meshgrid([1 2 3],[2 4]).So now U is an array.  Each element of U is going to correspond to a pointon the surface.  The value of the parameter u is given by the value of thatelement of the array.  Similarly, the value of an element of V is the valueof v for the corresponding point on the surface.Now, we use the parameters to describe the surface!  We need to write x, y, and z in terms of the parameters u and v, just like in mathland. Say for a sphere of radius  R = 7 we would write:R = 7;X = R* sin(U) .* cos(V);Y = R* sin(U) .* sin(V);Z = R* cos(U);We have made three more arrays X, Y, and Z.   The 2,3 element of thesearrays are the x,y, and z values on a sphere corresponding to the 2nd value of v and the third value of u.  So the array of values in X is all the X coordinatesof the points on the surface.  Likewise for Y and Z.   Note that you need to use .* when multiplying  so that you get element by element array multiplication.Now we make the plot. There are a few different ways of doing this, dependingon what appearance you like.  Any of the three commands below will workmesh(X,Y,Z)   or  surf(X,Y,Z)  or  surfl(X,Y,Z)So, putting the commands above together, here is the example just explained. Cut and paste this into a script file or the command window and see what it does. %SAMPLE SURFACE PLOT: HEMISPHERE (using spherical coordinates as parameters)u = linspace(0, pi, 50);v = linspace(0, 2*pi, 50);[U,V] = meshgrid(u,v);R = 7;X = R* sin(U) .* cos(V);Y = R* sin(U) .* sin(V);Z = R* cos(U);mesh(X,Y,Z)Here are two more samples as free bonuses.  They plot the hemisphere witha cone. The example above could have a cone added to it as well, but it was left off for simplicity. You can cut and paste the examples above and below into a script file or the command window to see what they do. .Here is how to put a sphere and a cone on top of each other%HEMISPHERE and CONE on top of each other (using polar coordinates as parameters)r     = 0:.05  :1; theta = 0:pi/20:2*pi;[R, THETA] = meshgrid(r,theta);X = R.*cos(THETA);Y = R.*sin(THETA);Zsphere = sqrt(1-R.^2); mesh(X,Y,Zsphere) %makes the plothidden off    % turns off hidden line removal so you can see through the surfacesZcone = R; hold onmesh(X,Y,Zcone)hold off ; hidden onHere is how to use x and y as parameters for a surface plot%HEMISPHERE and CONE  (using x and y as parameters)x = -1.5:.2:1.5; y = x;[X,Y] = meshgrid(x,y); one = ones(size(X));Zsq = one - X.^2 - Y.^2;positivesphere=sqrt((Zsq+abs(Zsq))/2); % clunky, but prevents sqrt(negatives)surf(X,Y,positivesphere);hold on;cone = sqrt(X.^2 + Y.^2);mesh(X,Y,cone)hold off