This is machine translation

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

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.


Extract subset of volume data set


[Nx,Ny,Nz,Nv] = subvolume(X,Y,Z,V,limits)
[Nx,Ny,Nz,Nv] = subvolume(V,limits)
Nv = subvolume(...)


[Nx,Ny,Nz,Nv] = subvolume(X,Y,Z,V,limits) extracts a subset of the volume data set V using the specified axis-aligned limits. limits = [xmin,xmax,ymin, ymax,zmin,zmax] (Any NaNs in the limits indicate that the volume should not be cropped along that axis.)

The arrays X, Y, and Z define the coordinates for the volume V. The subvolume is returned in NV and the coordinates of the subvolume are given in NX, NY, and NZ.

[Nx,Ny,Nz,Nv] = subvolume(V,limits) assumes the arrays X, Y, and Z are defined as

[X,Y,Z] = meshgrid(1:N,1:M,1:P) 

where [M,N,P] = size(V).

Nv = subvolume(...) returns only the subvolume.


collapse all

Load the mri data set, which is a collection of MRI slices of a human skull. Then:

  • Squeeze the four-dimensional array into three dimensions and extract a subset using subvolume.

  • Use a patch to display an isosurface of the skull outline.

  • Add a second patch with interpolated face colors.

  • Set the view of the object.

  • Change the colormap to a grayscale colormap.

  • Add lights to the right and left of the camera to illuminate the object.

load mri
D = squeeze(D);
[x,y,z,D] = subvolume(D,[60,80,nan,80,nan,nan]);
p1 = patch(isosurface(x,y,z,D, 5),...
p2 = patch(isocaps(x,y,z,D, 5),...
axis tight; 
daspect([1 1 0.4])
camlight right; 
camlight left; 
lighting gouraud

Extended Capabilities

Introduced before R2006a