# How to calculate the volume of a 3D plot defined by a matrix

11 views (last 30 days)
Wissem-Eddine KHATLA on 16 Dec 2021
Hi everyone,
So basically, I am trying to calculate a volume. More precisely, I have a height field that is defined in every point of a 2D plane and nammed "h_real" in my code. This quantity is a 3D matrix because each height field is computed at every timestamp so for each time frame corresponds a given height field.
I would like to estimate the evolution of the volume associated to the height's progression during the considered time period (which is the length of the 3D matrix). I have tried this script but the result obtained is not accurate...
Could someone help me to find a new strategy to do so please ?
for i = 1:length(h_real)
volume(i) = sum(h_real(:,:,i),'all')*(scale^2)*(1e6);
plot(volume)
ylabel('Volume (ml)')
xlabel('Number of images')
title('Evolution du volume au cours du temps');
end

Matt J on 16 Dec 2021
Edited: Matt J on 16 Dec 2021
It looks fine, though I would do it this way:
volume=reshape( sum(h_real,[1,2]), 1,[])*(scale^2)*(1e6);
plot(volume)
ylabel('Volume (ml)')
xlabel('Number of images')
title('Evolution du volume au cours du temps');
Wissem-Eddine KHATLA on 16 Dec 2021
Thank you for your answers : it helps me to reconsider again my initial experimental results.
Best regards.

### Categories

Find more on Exponential Distribution in Help Center and File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by