1

我有一个非均匀间隔的 x、y、z 数据(Eastings、Nothings 和厚度),我使用meshgrid,griddata和将其网格化并绘制为表面surf

我想计算这个表面下的体积,但我正在努力将这个问题的其他答案应用于我的数据集和有问题的代码(我是一个完整的 Matlab 初学者)。

任何想法如何做到这一点(在 Matlab 版本 2011b 上)?提前致谢。

load E.txt, load N.txt, load Z.txt;
[xi, yi] = meshgrid(25.351639:0.00025:25.426483, 36.363799:0.0005:36.458845);
zi = griddata(E,N,Z, xi,yi, 'linear');
surf(xi,yi,zi)
4

1 回答 1

0

griddata对数据进行插值,使其在xi, yi,zi网格上均匀分布。因此,您可以总结所有zi值并将结果乘以基面积,即dx*dy

dx = 0.00025;
dy = 0.0005;
vol = dx*dy*sum(zi(:));

如果某些zi值为 NaN,请改为执行以下操作:

vol = dx*dy*sum(zi(~isnan(zi)));
于 2013-08-08T08:46:03.133 回答