使用matlab中的interpolatoin制作两个向量相同的长度

问题描述:

我想插入长度为3的向量y1以获得长度为6的向量y2。我应该使用函数interp1还是resample中的哪一个?使用matlab中的interpolatoin制作两个向量相同的长度

ex。 y1 = [1 2 3]; y2 = [1 2 3 4 5 6];

重采样(Y1,长度(Y2),长度(Y1))

+3

如果你想插值,你可能应该使用插值函数。 – excaza

使用interp1。例如:你有一个正弦信号每pi/4采样一次。

x = 0:pi/4:2*pi; 
v = sin(x); 

enter image description here

我们想更细的取样xq(每PI/16):

xq = 0:pi/16:2*pi; 

其结果将是:

vq1 = interp1(x,v,xq); 

enter image description here

vq1是一个向量,其值从v插值来满足新的采样xq

PD:您还可以通过你想要哪种类型的插值的参数:“直线”,“最近”,“立方” ,等等......

+0

我有两个数值向量不是函数和点。 – zahraesb

+2

在我的例子中,你也有数字向量。 sin(x)不是一个符号函数,它只是生成值,但如果遵循一个公式,则更容易看出插值的工作原理。你可以用'rand(numel(x),1)'代替'sin(x)',看看它是否仍然有效。 –