2017-02-22 54 views
-1

我想實現一個簡單的功能,對於一定值返回1,這裏0語法錯誤:無法分配給函數調用,狄拉克函數值的INTERVALL的Python

但我不斷收到這錯誤:

Diracx(i) = 1 
SyntaxError: can't assign to function call 

你能幫忙嗎?

def Dirac(x): 
    Diracx = np.zeros(size(x)) 
    for i in range(size(x)): 
     if (x(i) == 0): 
      Diracx(i) = 1  

    return Diracx 


plt.plot(x,DiracDelta(x)) 
+0

你想要Diracx [i] = 1(方括號) - 它是一個數組。 –

+1

這個問題並不關於狄拉克的功能。它關於'SyntaxError'。 –

回答

0

或者,如果只是爲了刺激別人提供更好的答案。

>>> x = np.array([-2,-1,0,1,2]) 
>>> a = np.zeros(np.size(x)) 
>>> a[x!=0]=1 
>>> a 
array([ 1., 1., 0., 1., 1.]) 
+0

哼哼..它實際上更容易!謝謝你,先生。我有一個問題,當我這樣做,或者像我的例子那樣,我不會在一個值上得到一個衝動,在其他情況下得到0,但是我得到了一種內插。我怎樣才能關閉這個插值?我用plt.plot(x,a)來繪製 – MaximeMusterFrau

+0

你的意思是繪製線條連接點? –

+0

是的。所以它比衝動更像是一個三角形。 – MaximeMusterFrau