How to calculate the volume of a 3D plot defined by a matrix
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Wissem-Eddine KHATLA
el 16 de Dic. de 2021
Comentada: Wissem-Eddine KHATLA
el 16 de Dic. de 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 ?
Thank you in advance
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
0 comentarios
Respuesta aceptada
Matt J
el 16 de Dic. de 2021
Editada: Matt J
el 16 de Dic. de 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');
3 comentarios
Matt J
el 16 de Dic. de 2021
Editada: Matt J
el 16 de Dic. de 2021
So you think that if this method doesn't give me a relevant result it's because there is something wrong with my initial data "h_real" ?
Yes.
Don't you think that using the "sum" function is a little bit wrong in a certain way ?
Not if your data is smooth. You might be able to do a bit better with trapz().
volume=reshape( trapz(trapz(h_real,1),2), 1,[])*(scale^2)*(1e6);
Más respuestas (0)
Ver también
Categorías
Más información sobre 2-D and 3-D Plots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!