www.gusucode.com > matlab 案例源码 matlab代码程序 > matlab/GriddedInterpolantInThreeDimensionsExample.m

    %% griddedInterpolant in Three Dimensions
% This example shows how to create a 3-D interpolant and evaluate over a
% slice plane so you can plot the values on that plane.

%%
% Create a full grid and sample values.
[X,Y,Z] = ndgrid((-5:2:5));
V = X.^3 + Y.^2 + Z.^2;

%%
% Construct the |griddedInterpolant|.
F = griddedInterpolant(X,Y,Z,V,'cubic');

%%
% Since we already created the full grid to generate our sample values, we
% had nothing to lose in passing it to |griddedInterpolant|. In practice
% however, it's common to load the sample data into MATLAB from
% disk. The compact grid can very beneficial in such cases because it
% allows you to specify the entire grid in a form that is much more
% economical in terms of memory. If we had loaded |V| into MATLAB instead
% of calculating it from a full grid, we could have created a compact grid
% to conserve memory in our workspace. For example,
gv = {(-5:2:5),(-5:2:5),(-5:2:5)};
F = griddedInterpolant(gv,V,'cubic');


%%
% Now interpolate over a plane at |Z = 2| with 0.25 spacing.
[Xq,Yq,Zq] = ndgrid((-5:.25:5),(-5:.25:5),2:2);
Vq = F(Xq,Yq,Zq);

%%
% Plot the result.
surf(Xq,Yq,Vq);
title('Refined with Linear Interpolation');