如何在点之间进行插值而不超出它们?

时间:2012-10-25 16:54:46

标签: matlab interpolation

我有可变长度的数据(达到以2D记录的移动),并且想要创建一个将该数据重新采样为统一长度(500个样本)的函数。

但是,我希望matlab只在给定的最大值和最小值之间重新采样,而不添加任何额外的距离。例如,如果我重新采样矩阵[1:1:10],则重采样矩阵的最小值应为1,最大值应为10.

到目前为止,我已尝试过以下内容:

x = [1:1:10];
interp(x, 500 / length(x));

但是,这会使值高于我的最大指定值10.

有没有什么方法可以让matlab在两点之间进行重新采样/插值,而不是超出它们?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你需要:

x=(1:1:10);
n=500;
xi=interp1(1:length(x),x,linspace(min(x),max(x),n));