计算
区域体积下表面
最近有一个电子邮件使轮MathWorks如何计算
区域体积下表面。毫不奇怪,有几个方法选择,基于每个发送者的倾向。这里有一些方法的。
内容
数据已经在常规电网
如果你已经是在规则的网格数据,您可以简单地调用trapz在两次,一次X尺寸,一旦Y。这是一个例子。让我们先做一些随机的x和y点。
xdata = [0;100兰特(1);1);ydata = [0;100兰特(1);1);x =排序(xdata);y =排序(ydata);
现在,让我们计算网格采样功能。然后使用trapz两次。
(X, Y) = meshgrid (X, Y);Z = x ^ 2。*罪(3 * (x - y));trapz (y, trapz (x, Z, 2), 1)
ans = 0.13173
让我们来比较一下使用的结果dblquad。
F = @ (x, y) (x ^ 2)。*罪(3 * (x - y));dblquad (F, 0 1 0,1)
ans = 0.13173
分散的数据:找到凸包
MATLAB有能力处理分散数据以多种方式。我刚刚显示,使用meshgrid技术集成一个函数,你知道通过抽样,和比较结果数值积分相同的函数生成的样本。我会利用一些较新的计算几何功能在MATLAB下一个尝试。
负载海底山minz = min (z);zadj = z-min (z);
注意,我“规范化”的深度数据(z),因为它是负的,改变到数组中zadj都是负值。接下来,我创建一个interpolant从分散的数据。然后把这个函数使用quad2d,但在此之前削减的最大和最小值x和y所以我不会遇到(外推值南)。
F2 = TriScatteredInterp (x, y, zadj);q1 = quad2d (@ (x, y) F2 (x, y), 211.1,211.4, -48.35, -48年,“AbsTol”,0.01)
q1 = 136.04
分散的数据:找到了
区域体积
如果你有访问权曲线拟合工具箱,您可以利用拟合相对新功能的表面。我将使用相同的海底山数据和之前一样,创建一个适合数据,,从来自健康的功能,使用quad2d再次计算
区域体积。
f = fit (zadj (x, y),“linearinterp”);,211.4 q2 = quad2d (f, 211.1, -48.35, -48年,“AbsTol”,0.01)
q2 = 136.04
你怎么处理分散数据?
如果您有分散的数据代表一个表面,你如何思考和处理,数值或拟合的函数一些吗?你有其他方法吗?请让我知道在这里。