2017-06-08 55 views
1

是否可以实现超出网格值的双三次插值? 例如: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 
+0

为什么不输入外推值而是.....? –

+1

'griddata(...,'立方体')使用三次样条插值给定点的三角形内。你认为这应该如何转化为推断? – flawr

+0

@flawr,我不确定它是否可能,但想要检查。看着像这样(http://uk.mathworks.com/matlabcentral/fileexchange/8998-surface-fitting-using-gridfit),但如果可能的话,使用立方体方法。不一定需要使用griddata,但我的观点是分散的,而不是定期分开。 – Mary

回答

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

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

虽然这不是答案,但我不得不在这里发表讨论。