MATLAB: Find the volume of a nx3 Dataset

volume dataset

Hello everybody, I have an easy question:
I have seen this great explanation about how to integrate the volume underneath a set of nonuniformly spaced data: http://blogs.mathworks.com/videos/2009/09/08/integrating-to-find-the-volume-underneath-a-set-of-nonuniformly-spaced-data/
but the interpolation here it´s done between 0-1 because of his dataset. My question is: if my dataset has a large number of different values (like a ball), how should I do this interpolation? I have thought about to change the
interpZ(0.5,0.5) %test interpolation

vol = quad2d(interpZ,0,1,0,1) %volume should be close to 1
like this:
interpZ(¿?,¿?) %test interpolation
vol = quad2d(interpZ,min(min(z)),max(max(z)),min(min(z)),max(max(z)))
Thank you.

Best Answer

You have to decide what constitutes the "volume". Let's say your N by 3 data are the (x,y,z) coordinates in a scatter cloud/cluster that looks roughly like a peanut. Now, is your 3D volume the bounding box of the peanut? Or do you want it to be the volume of only the peanut itself? Finding the bounding box of the whole peanut is trivial = just use max() and min() on each of the three dimensions, x, y, and z. If you want a peanut shaped volume, then you have to decide if some arbitrary (x,y,z) point is to be included inside the peanut or outside of it, so that if you have a regular grid (like a CT or MRI volumetric image) then you can find the volume of the irregular peanut shape.