Matlab 如何在不超出点的情况下在点之间插值?

Matlab 如何在不超出点的情况下在点之间插值?,matlab,interpolation,Matlab,Interpolation,我有可变长度的数据(2D中记录的到达运动),希望创建一个函数,将此数据重新采样为统一长度(500个样本) 但是,我希望matlab只在给定的最大值和最小值之间重新采样,而不增加任何额外的距离。例如,如果我对矩阵重新采样[1:1:10],则重新采样的矩阵的最小值应为1,最大值应为10 到目前为止,我已经尝试了以下方法: x = [1:1:10]; interp(x, 500 / length(x)); 但是,该值高于我的最大指定值10 有没有办法让matlab只在两点之间重新采样/插值,而不超出

我有可变长度的数据(2D中记录的到达运动),希望创建一个函数,将此数据重新采样为统一长度(500个样本)

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

到目前为止,我已经尝试了以下方法:

x = [1:1:10];
interp(x, 500 / length(x));
但是,该值高于我的最大指定值10


有没有办法让matlab只在两点之间重新采样/插值,而不超出两点?

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

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

我不确定我是否理解你的问题,但你的例子可以用
x=(1:1:10)”来解决;n=500;xi=interp1((1:numel(x))',x,linspace(1,numel(x),n)')我认为你的答案有错误,我会写
[…],linspace(1,长度(x),n))取而代之。