Note: there is an update to this post here: https://blogs.mathworks.com/videos/2009/09/18/revisited-integrating-to-find-the-volume-underneath-a-set-of-non-uniformly-spaced-data/
% I have a dataset "A" (n by 3) of ordered triplets [x,y,z]. %I want to calculate the volume between surface defined by "A" and %the xy plane. "A" has only positive values but is not uniformly %spaced and not gridded. "A" cannot be described by a simple %function. Any help? n = 10; randOffset = 0.1; h = 1; x = rand(n); x(1:4)=[0 1 0 1]'; y = rand(n); y(1:4)=[0 0 1 1]'; z = h + randOffset*rand(n) - randOffset/2; %make average height plot3(x,y,z,'.') axis equal zlim([0 h + randOffset]) interpZ = @(xi,yi) griddata(x,y,z,xi,yi) %set up interpolation interpZ(0.5,0.5) %test interpolation vol = quad2d(interpZ,0,1,0,1) %volume should be close to 1
To leave a comment, please click here to sign in to your MathWorks Account or create a new one.