2017-06-15 58 views
0

我想在python中實現梯形內核(可能使用numpy或scipy)進行卷積,就像在astropy模塊中使用梯形內核一樣。我曾嘗試用梯形波形進行卷積,但結果不令人滿意。python中的梯形內核

def trapzoid_signal(t, width=2., slope=1., amp=1., offs=0): 
    global trasig 
    trasig=[] 
    trasig = slope*width*signal.sawtooth(2*np.pi*t/width, width=0.5)/4. 
    trasig+= slope*width/4. 
    trasig[trasig>amp] = amp 
    return trasig + offs 
t = np.linspace(0, 32, 34) 
trapzoid_signal(t, width=32, slope=1, amp=0.0322) 
print(trasig) 
z = scipy.signal.convolve(trasig,new) 

如果我打印ž它給:

[ nan nan nan ..., nan nan nan] 

我試圖繪製ž它給什麼。任何幫助?

+1

請嘗試使用[mcve]。你試過了什麼代碼?你有測試輸入/輸出嗎? –

+0

完成。請檢查 –

回答

1

尤里卡!我做的。關於爲什麼它不繪製或打印值爲[ nan nan nan ..., nan nan nan]通過使用我在StackOverflow本身發現的以下代碼被刪除。

ind = np.where(~np.isnan(new))[0] 
first, last = ind[0], ind[-1] 
new[:first] = new[first] 
new[last + 1:] = new[last] 

然後它解決了我的問題。我不僅獲得了z的值,還獲得了我的情節。感謝stackoverflow.com。