用于计算给定区域内的体积的matlab插值

时间:2012-09-17 12:59:22

标签: matlab

我在水柱的每个深度都有一些深度测量和相应的区域:

depth = [0,2,4,6,7,9,10];
Area = [2000,1890,1873,1654,1523,1433,1200];

figure(1);
plot(Area,depth);set(gca,'ydir','reverse');

我想计算每个指示深度之间的水量,然后计算整个水量。首先,我插入了深度和面积值,以提高计算的准确性:

dz = 0.1;
newD = min(depth):dz:max(depth);
newA = interp1(depth,Area,newD);

figure(2);
plot(newA,newD);set(gca,'ydir','reverse');

我将从哪里开始计算每个深度之间的水量?

2 个答案:

答案 0 :(得分:1)

要获得音量,请将面积乘以高度。因此,由于你的dz是恒定的,要获得选定深度的水量,你需要乘以

newA*dz

要获得总量,请总结

sum(newA*dz)

您的计算是在水面积随深度线性变化的情况下完成的(这是您使用interp1实现的)。我相信您可以设法分析地集成线性函数,而不是使用您当前的方法。您可以轻松获得确切的数字。

答案 1 :(得分:0)

您实际上想要将面积乘以总深度,而不是深度步长:

volume = newA.*newD;
totalVolume = sum(volume);