如何插入这个?

时间:2016-12-07 14:09:49

标签: matlab interpolation

插值时遇到问题。

点的情节是 here.

如果我们放大,情节看起来像这样 this.

我不知道如何使用Matlab interp1函数来插值。

解释

这是一个时空图,即x轴是空间,y轴是时间。

因此,向量x和y的结构如下:

矢量y定义为

  
    

Y =(1,1,2,2,3,3,4,4-,...,2500,2500)

  

并且x向量包含(成对)位置,即

x(i)x(i+1)y(i)=y(i+1)时的不同职位。

我认为问题可能是在不同的时间,我们有相同的点,可以在上面的放大图片中看到。

x值保持不变的时间步数有所不同,有时它们在3个时间步长中保持相同,有时甚至是4个时间步长,有时仅为2个时间步长。

1 个答案:

答案 0 :(得分:1)

您可以使用acccumarrayY中与X的每个唯一值对应的值执行某些操作。

使用一些示例数据:

x = [1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8];
y = 1:length(x);

我们得到如下内容:

raw

现在使用accumarray对每个群集执行一些计算:

clusteravg = accumarray(x', y, [], @mean);
clustermax = accumarray(x', y, [], @max);
clustermin = accumarray(x', y, [], @min);

accumarray的第一个输入是下标数组,第二个输入是与这些下标相对应的值数组。 accumarray收集共享相同下标(第一个输入)的第二个输入的所有元素,并对它们执行指定的计算。在这里,我计算了每个值集合的平均值,最大值和最小值:

yay