Products & Services Solutions Academia Support User Community Company

Learn more about MATLAB   

griddata - Data gridding

griddata is not recommended. Use TriScatteredInterp instead

Syntax

ZI = griddata(x,y,z,XI,YI)
[XI,YI,ZI] = griddata(x,y,z,XI,YI)
[...] = griddata(...,method)

Description

ZI = griddata(x,y,z,XI,YI) fits a surface of the form z = f(x,y) to the data in the (usually) nonuniformly spaced vectors (x,y,z). griddata interpolates this surface at the points specified by (XI,YI) to produce ZI. The surface always passes through the data points. XI and YI usually form a uniform grid (as produced by meshgrid).

XI can be a row vector, in which case it specifies a matrix with constant columns. Similarly, YI can be a column vector, and it specifies a matrix with constant rows.

[XI,YI,ZI] = griddata(x,y,z,XI,YI) returns the interpolated matrix ZI as above, and also returns the matrices XI and YI formed from row vector XI and column vector yi. These latter are the same as the matrices returned by meshgrid.

[...] = griddata(...,method) uses the specified interpolation method:

'linear'

Triangle-based linear interpolation (default)

'cubic'

Triangle-based cubic interpolation

'nearest'

Nearest neighbor interpolation

'v4'

MATLAB 4 griddata method

The method defines the type of surface fit to the data. The 'cubic' and 'v4' methods produce smooth surfaces while 'linear' and 'nearest' have discontinuities in the first and zero'th derivatives, respectively. All the methods except 'v4' are based on a Delaunay triangulation of the data. If method is [], then the default 'linear' method is used.

[...] = griddata(...,options) specifies a cell array of strings options that were previously used by Qhull. Qhull-specific options are no longer required and are currently ignored. Support for these options will be removed in a future release.

Occasionally, griddata might return points on or very near the convex hull of the data as NaNs. This is because roundoff in the computations sometimes makes it difficult to determine if a point near the boundary is in the convex hull.

griddata uses CGAL, see http://www.cgal.org.

Remarks

XI and YI can be matrices, in which case griddata returns the values for the corresponding points (XI(i,j),YI(i,j)). Alternatively, you can pass in the row and column vectors xi and yi, respectively. In this case, griddata interprets these vectors as if they were matrices produced by the command meshgrid(xi,yi).

Examples

Sample a function at 100 random points between ±2.0:

rand('seed',0)
x = rand(100,1)*4-2;  y = rand(100,1)*4-2;
z = x.*exp(-x.^2-y.^2);

x, y, and z are now vectors containing nonuniformly sampled data. Define a regular grid, and grid the data to it:

ti = -2:.25:2; 
[XI,YI] = meshgrid(ti,ti);
ZI = griddata(x,y,z,XI,YI);

Plot the gridded data along with the nonuniform data points used to generate it:

mesh(XI,YI,ZI), hold
plot3(x,y,z,'o'), hold off

See Also

delaunay, griddatan, interp2, meshgrid

  


Recommended Products

Includes the most popular MATLAB recorded presentations with Q&A sessions led by MATLAB experts.

 © 1984-2009- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS