Accelerating the pace of engineering and science

Documentation Center

• Trial Software

griddatan

Data gridding and hypersurface fitting (dimension ≥ 2)

Syntax

yi = griddatan(x,y,xi)
yi = griddatan(x,y,xi,method)
yi = griddatan(x,y,xi,method,options)

Description

yi = griddatan(x,y,xi) fits a hyper-surface of the form y = f(x) to the data in the (usually) nonuniformly-spaced vectors (x, y). griddatan interpolates this hyper-surface at the points specified by xi to produce yi. xi can be nonuniform.

X is of dimension m-by-n, representing m points in n-dimensional space. y is of dimension m-by-1, representing m values of the hyper-surface f(X). xi is a vector of size p-by-n, representing p points in the n-dimensional space whose surface value is to be fitted. yi is a vector of length p approximating the values f(xi). The hypersurface always goes through the data points (X,y). xi is usually a uniform grid (as produced by meshgrid).

yi = griddatan(x,y,xi,method) defines the type of surface fit to the data, where 'method' is one of:

 'linear' Triangulation-based linear interpolation (default) 'nearest' Nearest neighbor interpolation

All the methods are based on a Delaunay triangulation of the data.

If method is [], the default 'linear' method is used.

yi = griddatan(x,y,xi,method,options) specifies a cell array of strings options to be used in Qhull via delaunayn.

If options is [], the default options are used. If options is {''}, no options are used, not even the default.

Examples

expand all

Fit a Hypersurface

```X=2*gallery('uniformdata',[5000 3],0)-1;;
Y = sum(X.^2,2);
d = -0.8:0.05:0.8;
[y0,x0,z0] = ndgrid(d,d,d);
XI = [x0(:) y0(:) z0(:)];
YI = griddatan(X,Y,XI);
```

Since it is difficult to visualize 4-D data sets, use isosurface at 0.8:

```YI = reshape(YI, size(x0));
p = patch(isosurface(x0,y0,z0,YI,0.8));
isonormals(x0,y0,z0,YI,p);
set(p,'FaceColor','blue','EdgeColor','none');
view(3), axis equal, camlight, lighting phong
```