在 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);
会完成工作
我有一个二维矩阵 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);
会完成工作