Graphics Programs Reference
In-Depth Information
>> [x,y] = meshgrid(1:5,1:3)
x=
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
y=
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
>> clf
>> plt(x,y,'o')
>> axis([0.9 5 0.9 3])
Such matrices can be used, for example, as variables in functions of
x
and
y
:
[x,y] = meshgrid(linspace(0,5),linspace(-10,10));
r = sqrt(x.^2 + y.^2);
contour(x,y,r)
axis equal
axis([-10 10 -10 10])
(More detail on the
axis
command can be found on page 119.) The
meshgrid
function can be used to produce three-dimensional grids,
returning three-dimensional arrays that can be used in an analogous
manner. To go to more than three dimensions, you can use the function
ndgrid
. The following example of a three-dimensional volume visualisa-
tion is taken from the help entry for
ndgrid
:
[x1,x2,x3] = ndgrid(-2:.2:2, -2:.25:2, -2:.16:2);
z = x2 .* exp(-x1.^2 - x2.^2 - x3.^2);
slice(x2,x1,x3,z,[-1.2 .8],[], -.2)
view(-24,28)
Exercise 12
What is the difference between the outputs of
meshgrid
and
ndgrid
when generating grid matrices of less than
four dimensions? Why this difference? (Answer on page 189.)