Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

Interpolation of 2-D Selections in 3-D Grids

This example shows how to reduce the dimensionality of the grid plane arrays in 3-D to solve a 2-D interpolation problem.

In some application areas, it might be necessary to interpolate a lower dimensional plane of a grid; for example, interpolating a plane of a 3-D grid. When you extract the grid plane from the 3-D grid, the resulting arrays might be in 3-D format. You can use the squeeze function to reduce the dimensionality of the grid plane arrays to solve the problem in 2-D.

Create a 3-D sample grid and corresponding values.

[X,Y,Z] = ndgrid(1:5);
V = X.^2 + Y.^2 +Z;

Select a 2-D sample from the grid. In this case, the third column of samples.

x = X(:,3,:);
z = Z(:,3,:);
v = V(:,3,:);

The 2-D plane occurs at Y=3, so the Y dimension has been fixed. x, z, and v are 5-by-1-by-5 arrays. You must reduce them to 2-D arrays before evaluating the interpolant.

Reduce x, z, and v down to 2-D arrays using the squeeze function.

x = squeeze(x);
z = squeeze(z);
v = squeeze(v);

Interpolate the 2-D slice over a finer grid of query points.

[Xq,Zq] = ndgrid(1:0.5:5);
Vq = interpn(x,z,v,Xq,Zq);

Plot the results.

figure
surf(Xq,Zq,Vq);
xlabel('Xq');
ylabel('Zq');
zlabel('Vq');

See Also

|

Related Topics

Was this topic helpful?