huaijuliu 发表于 2010-12-9 08:32

网上提供的gridfit可以对向量进行三维曲面拟合
function = gridfit(x,y,z,xnodes,ynodes,varargin)
% gridfit: estimates a surface on a 2d grid, based on scattered data
%          Replicates are allowed. All methods extrapolate to the grid
%          boundaries. Gridfit uses a modified ridge estimator to
%          generate the surface, where the bias is toward smoothness.
%
%          Gridfit is not an interpolant. Its goal is a smooth surface
%          that approximates your data, but allows you to control the
%          amount of smoothing.
%
% usage #1: zgrid = gridfit(x,y,z,xnodes,ynodes);
% usage #2: = gridfit(x,y,z,xnodes,ynodes);
% usage #3: zgrid = gridfit(x,y,z,xnodes,ynodes,prop,val,prop,val,...);
%
% Arguments: (input)
%x,y,z - vectors of equal lengths, containing arbitrary scattered data
%          The only constraint on x and y is they cannot ALL fall on a
%          single line in the x-y plane. Replicate points will be treated
%          in a least squares sense.
%
%          ANY points containing a NaN are ignored in the estimation
%
%xnodes - vector defining the nodes in the grid in the independent
%          variable (x). xnodes need not be equally spaced. xnodes
%          must completely span the data. If they do not, then the
%          'extend' property is applied, adjusting the first and last
%          nodes to be extended as necessary. See below for a complete
%          description of the 'extend' property.
%
%          If xnodes is a scalar integer, then it specifies the number
%          of equally spaced nodes between the min and max of the data.
%
%ynodes - vector defining the nodes in the grid in the independent
%          variable (y). ynodes need not be equally spaced.
%
%          If ynodes is a scalar integer, then it specifies the number
%          of equally spaced nodes between the min and max of the data.
%
%          Also see the extend property.
%
%Additional arguments follow in the form of property/value pairs.
%Valid properties are:
%    'smoothness', 'interp', 'regularizer', 'solver', 'maxiter'
%    'extend', 'tilesize', 'overlap'
%
%Any UNAMBIGUOUS shortening (even down to a single letter) is
%valid for property names. All properties have default values,
%chosen (I hope) to give a reasonable result out of the box.
%
%   'smoothness' - scalar - determines the eventual smoothness of the
%          estimated surface. A larger value here means the surface
%          will be smoother. Smoothness must be a non-negative real
%          number.
%
%          Note: the problem is normalized in advance so that a
%          smoothness of 1 MAY generate reasonable results. If you
%          find the result is too smooth, then use a smaller value
%          for this parameter. Likewise, bumpy surfaces suggest use
%          of a larger value. (Sometimes, use of an iterative solver
%          with too small a limit on the maximum number of iterations
%          will result in non-convergence.)
%
%          DEFAULT: 1
%
%
%   'interp' - character, denotes the interpolation scheme used
%          to interpolate the data.
%
%          DEFAULT: 'triangle'
%
%          'bilinear' - use bilinear interpolation within the grid
%                     (also known as tensor product linear interpolation)
%
%          'triangle' - split each cell in the grid into a triangle,
%                     then linear interpolation inside each triangle
%
%          'nearest' - nearest neighbor interpolation. This will
%                     rarely be a good choice, but I included it
%                     as an option for completeness.
%
%
%   'regularizer' - character flag, denotes the regularization
%          paradignm to be used. There are currently three options.
%
%          DEFAULT: 'gradient'
%
%          'diffusion' or 'laplacian' - uses a finite difference
%            approximation to the Laplacian operator (i.e, del^2).
%
%            We can think of the surface as a plate, wherein the
%            bending rigidity of the plate is specified by the user
%            as a number relative to the importance of fidelity to
%            the data. A stiffer plate will result in a smoother
%            surface overall, but fit the data less well. I've
%            modeled a simple plate using the Laplacian, del^2. (A
%            projected enhancement is to do a better job with the
%            plate equations.)
%
%            We can also view the regularizer as a diffusion problem,
%            where the relative thermal conductivity is supplied.
%            Here interpolation is seen as a problem of finding the
%            steady temperature profile in an object, given a set of
%            points held at a fixed temperature. Extrapolation will
%            be linear. Both paradigms are appropriate for a Laplacian
%            regularizer.
%
%          'gradient' - attempts to ensure the gradient is as smooth
%            as possible everywhere. Its subtly different from the
%            'diffusion' option, in that here the directional
%            derivatives are biased to be smooth across cell
%            boundaries in the grid.
%
%            The gradient option uncouples the terms in the Laplacian.
%            Think of it as two coupled PDEs instead of one PDE. Why
%            are they different at all? The terms in the Laplacian
%            can balance each other.
%
%          'springs' - uses a spring model connecting nodes to each
%            other, as well as connecting data points to the nodes
%            in the grid. This choice will cause any extrapolation
%            to be as constant as possible.
%
%            Here the smoothing parameter is the relative stiffness
%            of the springs connecting the nodes to each other compared
%            to the stiffness of a spting connecting the lattice to
%            each data point. Since all springs have a rest length
%            (length at which the spring has zero potential energy)
%            of zero, any extrapolation will be minimized.
%
%          Note: I don't terribly like the 'springs' strategy.
%          It tends to drag the surface towards the mean of all
%          the data. Its been left in only because the paradigm
%          interests me.
页: 1 [2]
查看完整版本: 三维图Z轴怎样表示、确定。用mesh?。