数组的Matlab插值

时间:2014-03-20 12:35:08

标签: arrays matlab interpolation

使用下面的数组:

-2,  0
-1,  0.1
 0,  0.4
 2,  0.6
 3,  0.9
 5,  1

我需要能够使用MatLab中的函数对其进行插值,以找出xy = 0.06, 0.13, 0.58对应的值

2 个答案:

答案 0 :(得分:1)

就这么简单:

A = [-2,  0;
     -1,  0.1;
      0,  0.4;
      2,  0.6;
      3,  0.9;
      5,  1  ]

yi = [0.06, 0.13, 0.58]  

然后:

xi = interp1(A(:,2),A(:,1),yi)

返回:

xi =

   -1.4000   -0.9000    1.8000

你可以自己发现;)

答案 1 :(得分:1)

您正在寻找的功能是interp1。您可以以两种形式使用它,如果您想要线性插值,那么您只需使用:

x  = [0,0.1,0.4,0.6,0.9];
v  = [-2,-1,0,2,3,5];
xq = [0.06,0.13,0.58];
vq = interp1(x,v,xq);

导致

vq =

   -1.4000   -0.9000    1.8000

如果你想要一种不同类型的插值,你可以把你想要的类型作为4 th 参数:

vq = interp1(v,x,xq,'PCHIP');

导致

vq =

   -1.3185   -0.8534    1.8695

可用的插值方法有:nearestlinearsplinepchipcubic