我有一个非均匀间隔的x,y,z数据(Eastings,Nothings和thickness),我已使用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)
答案 0 :(得分: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)));