Main Content

slice

Volume slice planes

  • Volume slice planes

Description

slice(X,Y,Z,V,xslice,yslice,zslice) draws slices for the volumetric data V. Specify X,Y, and Z as the coordinate data. Specify xslice, yslice, and zslice as the slice locations using one of these forms:

  • To draw one or more slice planes that are orthogonal to a particular axis, specify the slice arguments as a scalar or vector.

  • To draw a single slice along a surface, specify all the slice arguments as matrices that define a surface.

example

slice(V,xslice,yslice,zslice) uses the default coordinate data for V. The (x,y,z) location for each element in V is based on the column, row, and page index, respectively.

slice(___,method) specifies the interpolation method, where method can be 'linear' (the default), 'cubic', or 'nearest'. Use this option with any of the input arguments in previous syntaxes.

example

slice(ax,___) plots into the specified axes, instead of the current axes (gca).

s = slice(___) returns the Surface objects created. slice returns one Surface object for each slice.

Examples

collapse all

Show volumetric data along slice planes that are orthogonal to each axis.

Create slice planes through the volume defined by v=xe-x2-y2-z2, where x, y, and z range from [-2,2]. Create slice planes orthogonal to the x-axis at the values -1.2, 0.8, and 2 and orthogonal to the z-axis at the value 0. Do not create any slice planes that are orthogonal to the y-axis by specifying an empty array.

[X,Y,Z] = meshgrid(-2:.2:2);
V = X.*exp(-X.^2-Y.^2-Z.^2);

xslice = [-1.2,0.8,2];   
yslice = [];
zslice = 0;
slice(X,Y,Z,V,xslice,yslice,zslice)

Figure contains an axes object. The axes object contains 4 objects of type surface.

Show volumetric data along a nonplanar slice. Define the surface where you want to show the volumetric data.

Create volume array V as the volume defined by v=xe-x2-y2-z2, where x, y, and z range from [-5,5]. Then, show a slice of the volume data along the surface defined by z=x2-y2.

[X,Y,Z] = meshgrid(-5:0.2:5);
V = X.*exp(-X.^2-Y.^2-Z.^2);

[xsurf,ysurf] = meshgrid(-2:0.2:2);
zsurf = xsurf.^2-ysurf.^2;
slice(X,Y,Z,V,xsurf,ysurf,zsurf)

Figure contains an axes object. The axes object contains an object of type surface.

Create a slice plane through volumetric data. Specify the interpolation method for the data values.

Create a slice plane orthogonal to the x-axis at the value 0.8. Since the volume data is not defined for x values of 0.8, the slice function interpolates the nearby values. To use the nearest data point value, specify the interpolation method as 'nearest'.

[X,Y,Z] = meshgrid(-2:2);
V = X.*exp(-X.^2-Y.^2-Z.^2);
xslice = 0.8;   
yslice = [];
zslice = [];
slice(X,Y,Z,V,xslice,yslice,zslice,'nearest')

Figure contains an axes object. The axes object contains an object of type surface.

Input Arguments

collapse all

x-axis coordinate data, specified as a vector or a 3-D array the same size as V. If you specify a 3-D array, it must be monotonic and orthogonally spaced, as if produced by the meshgrid function.

Data Types: single | double

y-axis coordinate data, specified as a vector or a 3-D array the same size as V. If you specify a 3-D array, it must be monotonic and orthogonally spaced, as if produced by the meshgrid function.

Data Types: single | double

z-axis coordinate data, specified as a vector or a 3-D array the same size as V. If you specify a 3-D array, it must be monotonic and orthogonally spaced, as if produced by the meshgrid function.

Data Types: single | double

Volume data, specified as a 3-D array.

Data Types: single | double

x-axis slice values, specified in one of these forms:

  • Scalar — Draw one slice plane orthogonal to the x-axis at the specified location.

  • Vector — Draw multiple slice planes orthogonal to the x-axis at the specified locations.

  • [] — Do not draw any slice planes.

  • Matrix — Draw the slice along a surface, instead of a plane. If you use this option, then yslice and zslice also must be matrices that are the same size.

Example: [2 4] draws slice planes orthogonal to the x-axis at the values 2 and 4.

Data Types: single | double

y-axis slice values, specified in one of these forms:

  • Scalar — Draw one slice plane orthogonal to the y-axis at the specified location.

  • Vector — Draw multiple slice planes orthogonal to the y-axis at the specified locations.

  • [] — Do not draw any slice planes.

  • Matrix — Draw the slice along a surface, instead of a plane. If you use this option, then xslice and zslice also must be matrices that are the same size.

Example: [2 4] draws slice planes orthogonal to the y-axis at the values 2 and 4.

Data Types: single | double

z-axis slice values, specified in one of these forms:

  • Scalar — Draw one slice plane orthogonal to the z-axis at the specified location.

  • Vector — Draw multiple slice planes orthogonal to the z-axis at the specified locations.

  • [] — Do not draw any slice planes.

  • Matrix — Draw the slice along a surface, instead of a plane. If you use this option, then xslice and yslice also must be matrices that are the same size.

Example: [2 4] draws slice planes orthogonal to the z-axis at the values 2 and 4.

Data Types: single | double

Interpolation method, specified as one of these values:

  • 'linear' — Linear interpolation of the values at neighboring grid points in each respective dimension

  • 'cubic' — Cubic interpolation of the values at neighboring grid points in each respective dimension

  • 'nearest' — Nearest grid point value

Target axes, specified as an Axes object. If you do not specify the axes, then slice plots into the current axes.

Extended Capabilities

Version History

Introduced before R2006a

See Also

| | | | (Image Processing Toolbox)