2016-12-07 54 views
1

我有一个内插问题。如何插入此?

点的情节 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个时间步。

+0

您尝试使用MATLAB的'interp1'? – Royi

+0

是的,没错。但是如果我们对不同的y值有相同的x值,我想这是行不通的。 –

+0

你可以绘制一条线,穿过所有小细分的中心(如果它有任何物理意义的话) – BillBokeey

回答

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收集共享相同下标(第一个输入)的第二个输入的所有元素并对它们执行指定的计算。在这里,我计算出的平均值,最大值和最小值的值的每个集群:

yay