Generate a regular mesh from irregular data using interpolation.
The function is defined by z = f (x, y). Inputs
x, y, z are vectors of the same length or
x, y are vectors and z is matrix.
The interpolation points are all (xi, yi). If xi,
yi are vectors then they are made into a 2-D mesh.
The interpolation method can be "nearest", "cubic" or
"linear". If method is omitted it defaults to "linear".
See also: griddata3, griddatan, delaunay.
The following code
clf;
colormap ("default");
x = 2*rand (100,1) - 1;
y = 2*rand (size (x)) - 1;
z = sin (2*(x.^2 + y.^2));
[xx,yy] = meshgrid (linspace (-1,1,32));
zz = griddata (x,y,z,xx,yy);
mesh (xx, yy, zz);
title ("nonuniform grid sampled at 100 points");
Produces the following figure
| Figure 1 |
|---|
![]() |
The following code
clf;
colormap ("default");
x = 2*rand (1000,1) - 1;
y = 2*rand (size (x)) - 1;
z = sin (2*(x.^2 + y.^2));
[xx,yy] = meshgrid (linspace (-1,1,32));
zz = griddata (x,y,z,xx,yy);
mesh (xx, yy, zz);
title ("nonuniform grid sampled at 1000 points");
Produces the following figure
| Figure 1 |
|---|
![]() |
The following code
clf;
colormap ("default");
x = 2*rand (1000,1) - 1;
y = 2*rand (size (x)) - 1;
z = sin (2*(x.^2 + y.^2));
[xx,yy] = meshgrid (linspace (-1,1,32));
zz = griddata (x,y,z,xx,yy,"nearest");
mesh (xx, yy, zz);
title ("nonuniform grid sampled at 1000 points with nearest neighbor");
Produces the following figure
| Figure 1 |
|---|
![]() |
Package: octave