在 MATLAB 中使用 interp2 时出错

Error using interp2 in MATLAB

我有一个二维矩阵 F,我想用 interp2 对其进行插值。为了理解这个函数是如何工作的,我一直在尝试执行以下行:

Fq = interp2(X,Z,F,X,Z);

其中X和Z为meshgrid处理后F的轴。我认为 Fq 将等于 F,因为我试图用相同的轴 X 和 Z 进行插值。

但是,我得到了这个输出:

Error using griddedInterpolant
The grid vectors do not define a grid of points that match the given values.

为什么会出现该错误?

供您参考,这些是 运行 函数 size 在 X、Z 和 F 上的结果:

>> size(X)

ans =

   109    24

>> size(Z)

ans =

   109    24

>> size(F)

ans =

    24   109

谢谢。

正如函数所说,您的数据大小不同(请记住,[109 24] 不是 [24 109])。

看到你的数据,你可能'F'转置了。如果是这样的话,那么

Fq = interp2(X,Z,F.',X,Z);

会完成工作