有人知道如何将方形网格上的已知解决方案传递给三角形网格吗?我一直在使用tri2grid
命令将我的解决方案从三角形网格传递到方形网格,所以现在我正在寻找类似“grid2grid”函数的东西来将我的解决方案从一个网格传递到另一个网格。有谁知道怎么做?
说我知道正方形网格上的点的解决方案,如下所示:
我想要的是在下面的网格上插入该解决方案:
请记住,我所拥有的坐标和解决方案是矩阵形式,插值后我想再次使用矩阵形式。
答案 0 :(得分:2)
您的解决方案是使用griddata(不是Matlab建议)或scatInterpolant(建议)。
由于我总是使用griddata(从未遇到任何问题),我会给你一个答案。
X=-12:0;
Y=-1:2/11:1;
[X,Y]=ndgrid(X,Y);%size(X) = size(Y)
Z=yourfunc(X,Y);%whatever are your original Z values.
TriX = trianglefunc(Y);%size(TriX)=size(X)=size(Y)
TriZ = griddata(X,Y,Z,TriX,Y);
你需要自己定义如何制作三角形。我注意到只有x轴值正在变化,但y轴值保持不变。这就是没有'TriY'的原因。此外,如果您的'TriX'值在'X'之外,如果我记得很清楚,该函数将返回NaNs作为推断值。如果你需要推断,正如Ander Biguri所提到的那样,你需要使用scatInterpolant类。