Matlab中超出网格值的双立方插值

时间:2017-06-08 09:16:59

标签: matlab interpolation extrapolation bicubic

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

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

1 个答案:

答案 0 :(得分:0)

我的建议是,您可以输入外推的值。检查以下代码。但请注意,正如flawr所暗示的那样,推断表现得非常糟糕。

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')

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

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