我有兩個數據集(x1,y1)
和(x2,y2)
,其中第一個數據集比第二個數據集長,這意味着x1[0]<x2[0]
和x1[-1]>x2[0]
。但是第一個數據集的長度在每個方面更長一般是不一樣的。交叉相關的中點
我與交叉關聯SciPy的使用
ycorr = scipy.correlate(y1,y2,mode='valid')
xcorr = np.linspace(0,len(ycorr)-1,len(ycorr))
我的問題是如何找到的互相關的中點=如果兩個數據集具有相同的長度和mode='valid'
其中ycorr
計算一個點。 所以中點不是xcorr [len(xcorr)/ 2]。
這可能很難理解我的問題,所以請問是否有不清楚的地方。
編輯
要找到中間點我們在長度看到終點。所以最後x1
比x2
多長。
的中點由
for i in xrange(len(x1)-1):
if x1[i]<x2[-1] and x1[i+1]>x2[-1]:
I = i
break
mid_point = (len(y1[I:-1])+len(y1[I+1:-1]))/2
問題:1 /「,其中第一個數據集是長比第一個「:你的意思是」第二個「,對吧? 2 /你關聯y1 & y2;但你在比較x1和x2的第一段? 3 /我不太熟悉correlate(),但是對於mode ='valid',它似乎只在y1和y2重疊的位置返回值;但仍然不會返回一個點(「一點」)。哪一點?在最好的情況下,假設y1和x1的長度匹配,並且y2和x2的長度匹配,你需要x1或x2中的一個點對應於輸出相關的中點。那是對的嗎? – Evert
1:是的。我已更新該帖子。 2:我關聯y1和y2,因爲這是用來做相關性的方式。 3:那是對的。 mode ='valid'返回第一個和第二個數據集重疊的地方。如果計算互相關並且兩個數據集具有相同的長度(len(x1)= len(x2)),那麼我說的單點就是點。 這是正確的。 x1和y1具有相同的長度(對於x2和y2同樣)。 –