在 Matlab 中超出网格值的双三次插值



是否有可能实现超出网格值的双三次插值?例如:

L = [5,10,20,25,40];
W= 1:3;
S= [50 99 787
    779 795 850
    803 779 388
    886 753 486
    849 780 598];
size1 = griddata(W,L,S,2,40,'cubic')
sizeBeyond = griddata(W,L,S,2,41,'cubic')
sizeV4 = griddata(W,L,S,2,41,'v4')

返回:

size1 = 780
sizeBeyond = NaN
sizeV4 = 721.57

我的建议是,您可以输入外推的值。检查下面的代码。但请注意,正如缺陷所建议的那样,外推法的行为非常糟糕。

l = [5,10,20,25,40];
w = 1:3;
li = [l 41] ;
S = [50 99 787
    779 795 850
    803 779 388
    886 753 486
    849 780 598];
[W,L] = meshgrid(w,l) ;
[Wi,Li] = meshgrid(w,li) ;
Si = interp2(W,L,S,Wi,Li,'spline') ;
size1 = griddata(W,L,S,2,40,'cubic')
sizeBeyond = griddata(Wi,Li,Si,2,41,'cubic')
sizeV4 = griddata(W,L,S,2,41,'v4')

注意:不要在代码中使用内置命令(如长度,大小等(作为变量,即使是为了演示,也有些麻烦。

虽然,这不是答案,但我必须在这里发布它以供讨论。

相关内容

  • 没有找到相关文章

最新更新