2016-12-07 59 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