【问题标题】:2D interpolation with interp2使用 interp2 进行 2D 插值
【发布时间】:2015-12-18 19:02:09
【问题描述】:

我想用 interp2 函数描述平面的平面度。

空间采样点如下。

width=[0 500];
length=[0 100 200 300 400 500 600 700 800 900 1000];

平面度如下图,宽度分别为0和500。

 a = [1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1]; % flatness at width 0
 b = [-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1]; % flatness at width 500

使用这些值,表面形状将如下图所示。

我想用interp2函数把这个图变成下图。

下面是我的代码。

widthq=[0 100 200 300 400 500];

flatness=[a' b'];

flatnessq=interp2(width,length,flatness,widthq,length);

但是,没有出现一个错误,“输入数据的大小不一致。”

谁能解释这个错误并给出如何用 interp2 函数插入我的数据的方法?

【问题讨论】:

  • 您转置了 ab 但不是 length。尝试保持尺寸一致?
  • 不要使用length作为变量名!
  • 您接受的答案不是正确答案——正确答案在@Dan 的评论中...

标签: matlab interpolation


【解决方案1】:

前三个输入必须具有相同的大小

[W, L] = meshgrid(width, length);

最后两个参数也需要大小相同

[Wq, Lq] = meshgrid(widthq, length);

那么它应该可以工作

flatnessq=interp2(W,L,flatness,Wq,Lq);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 2021-02-27
    • 1970-01-01
    相关资源
    最近更新 更多