使用Matlab中的Interpolation创建新值

时间:2018-03-11 18:30:55

标签: matlab interpolation

我有一个向量 x = [7 8 8 8 ...] 和对应的向量 y = [13 14 15 16 ...] ,这给出了我有些观点,如下图所示 enter image description here

现在我想在给定点的每对之间创建两个(或一般N个)新点。我认为应该使用插值来完成,但我找不到可以使用的东西在这种情况下。

结果应该是这样的:

x = [7 7.4 7.7 8 8 8 8 ...],

y = [13 13.3 13.8 14 14.2 14.5 15 ...]

2 个答案:

答案 0 :(得分:2)

要使用的函数是interp1,在这种情况下,例如:

N=3;
x=[7 8 8 9];
y=[7 10 15 17];
originalSpacing=1:length(x);
finalSpacing=1:1/N:4; 

xx=interp1(originalSpacing,x,finalSpacing);
yy=interp1(originalSpacing,y,finalSpacing);

将导致新的插值系列xx和yy

xx = [7 7.3333 7.6667 8 8 8 8 8.3333 8.6667 9]

yy = [7 8 9 10 11.6667 13.3333 15 15.6667 16.3333 17]

答案 1 :(得分:1)

使用interp可以增加数据

a=1:10;
b=interp(a,3);
b=b(1:end-2);

我删除了最后2分,因为它们超出了范围,但如果它们适合你,你可以使用它们。