我正在尝试理解Matlab语言中的TriScatteredInterp
。我遵循了帮助文件中的示例程序。
x = rand(100,1)*4-2;
y = rand(100,1)*4-2;
z = x.*exp(-x.^2-y.^2);
Construct the interpolant:
F = TriScatteredInterp(x,y,z);
我观察到的是,F.X与x和y相同,F.V与z相同;
ti = -2:.25:2;
[qx,qy] = meshgrid(ti,ti);
qz = F(qx,qy);
我认为线性插值是在qz = F(qx,qy);
中完成的。它是如何实现线性插值的呢?谢谢
发布于 2013-09-06 11:24:00
现在我理解了TriScatteredInterp在Matlab中的工作原理。我们有N×3维的x,y,z点。所有这些点,我们需要在C++中实现Delaunay三角形。这很简单。然后,对于所有你想要的网格点x',y',请搜索你的x',y‘所在的三角形。然后在三角形中进行重心插值,如link所示。你会得到这些x',y‘的z’。这就是我们在TriScatteredInterp的C++中需要做的所有事情。祝好运!
https://stackoverflow.com/questions/18628237
复制相似问题