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

用于计算给定区域内体积的matlab插值,matlab,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);

我有一些深度测量和水柱每个深度的相应面积:

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');

我从这里到哪里去计算每个深度之间的水的体积?

要得到体积,你要用面积乘以高度。因此,因为你的dz是恒定的,所以你需要乘以所选深度的水量

newA*dz
要得到总体积,请将其相加

sum(newA*dz)

您的计算是在假定水域面积随深度呈线性变化的情况下完成的(这是使用interp1实现的)。我相信你可以用解析的方法来积分线性函数,而不是用你目前的方法。你可以很容易地得到一个精确的数字。

你实际上想用总深度乘以面积,而不是深度步长:

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

你的回答不正确。Kate想计算水量“每个深度之间的水量”,我假设每个dz的意思是。你们的答案是错误的,因为你们把给定深度的水域面积乘以那个深度。这没有考虑到水域面积随深度变化的事实。因此,在假设水域面积不变的情况下,有效地计算从地表到给定深度的综合水量。事实并非如此,因此你的答案是错误的。