Next: Parametric plots Up: Advanced Graphics Previous: Putting several graphs in

## 3D plots

In order to create a graph of a surface in 3-space (or a contour plot of a surface), it is necessary to evaluate the function on a regular rectangular grid. This can be done using the meshgrid command. First, create 1D vectors describing the grids in the x- and y-directions:

```>> x = (0:2*pi/20:2*pi)';
>> y = (0:4*pi/40:4*pi)';```
Next, ``spread'' these grids into two dimensions using meshgrid:
```>> [X,Y] = meshgrid(x,y);
>> whos
Name      Size         Bytes  Class

X        41x21          6888  double array
Y        41x21          6888  double array
x        21x1            168  double array
y        41x1            328  double array

Grand total is 1784 elements using 14272 bytes```
The effect of meshgrid is to create a vector X with the x-grid along each row, and a vector Y with the y-grid along each column. Then, using vectorized functions and/or operators, it is easy to evaluate a function z = f(x,y) of two variables on the rectangular grid:
`>> z = cos(X).*cos(2*Y);`

Having created the matrix containing the samples of the function, the surface can be graphed using either the mesh or the surf commands (see Figures 8 and 9, respectively):

```>> mesh(x,y,z)
>> surf(x,y,z)```

Figure 8: Using the mesh command

Figure 9: Using the surf command

(The difference is that surf shades the surface, while mesh does not.) In addition, a contour plot can be created (see Figure 10):

`>> contour(x,y,z)`

Figure 10: Using the contour command

Use the help command to learn the additional options. These commands can be very time-consuming if the grid is fine.

Mark S. Gockenbach
Wed Sep 8 10:44:13 EDT 1999