我正在尝试理解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);
中完成的。它如何进行线性插值?
感谢
答案 0 :(得分:0)
现在我了解TriScatteredInterp如何在Matlab中运行。 我们有N X 3维度的x,y,z点。 所有这些要点,我们需要在C ++中实现Delaunay三角形。 这很容易。然后,对于所有您想要的网格点x',y',请搜索x',y'所在的三角形。然后在三角形中进行重心插值,如link所示。你会得到这些x',y'的z'。这就是我们需要在C ++中为TriScatteredInterp做的事情。祝你好运!