我有可变长度的数据(达到以2D记录的移动),并且想要创建一个将该数据重新采样为统一长度(500个样本)的函数。
但是,我希望matlab只在给定的最大值和最小值之间重新采样,而不添加任何额外的距离。例如,如果我重新采样矩阵[1:1:10]
,则重采样矩阵的最小值应为1,最大值应为10.
到目前为止,我已尝试过以下内容:
x = [1:1:10];
interp(x, 500 / length(x));
但是,这会使值高于我的最大指定值10.
有没有什么方法可以让matlab在两点之间进行重新采样/插值,而不是超出它们?
答案 0 :(得分:1)
如果我理解正确,你需要:
x=(1:1:10);
n=500;
xi=interp1(1:length(x),x,linspace(min(x),max(x),n));