使用MATLAB中的Interp2对特定点的立方插值



给定以下示例,是否有一种方法可以实现双色插值,而无需生成整个差距的网格?:

    years = [5,10,20,25,40];
    service = 1:3;
wage = [50 99 787.685
          779 795 850
          803 779 388
          886 753 486
          849 780 598];
    w = interp2(service,years,wage,1.5,37.5,'cubic')

警告:"立方"方法要求网格具有统一 间距。将方法从"立方"切换到"样条",因为这 条件未满足。

我了解警告的原因。因此,希望通过指定特定点而无需生成整个均等的表面(可用的数据不相等(来找到解决方案。不一定必须是Interp2。我将不得不将其用于数百个表面和数百个查询点,因此在返回" W"时需要非常快。有什么想法吗?

如果您坚持使用'cubic'插值方法,则可以使用griddata,该方法被指定为插值散射数据,即未在均匀间隔网格上定义的数据:

years = [5,10,20,25,40];
service = 1:3;
wage = [50 99 787.685
    779 795 850
    803 779 388
    886 753 486
    849 780 598];
w = griddata(service,years,wage,1.5,37.5,'cubic')

最新更新