2014-06-18 19 views
-3

評估函數我想評估給定數組的每個值的函數的離散點(名稱爲wl)。到目前爲止,我有:Python - 使用

from pylab import * 
import numpy 

#wl is a defined list 
a=1 
b=3934.3 
c=0.2885 
for x in (wl): 
    G[x]=a*exp(-(wl(x)-b)^2/c^2) 

但我得到錯誤TypeError: 'numpy.ndarray' object is not callable。我需要的是名爲G的第二個列表,其值與列表wl中每個值處的評估函數相對應。

這個錯誤是什麼意思?我應該以某種方式定義G之前?

謝謝。

+4

它實際上並未定義爲列表。這是你的問題:'wl(x)'你有什麼意圖? – bernie

+0

請提供整個回溯,而不僅僅是錯誤。 –

+1

你說'wl'是一個列表,但你稱它爲一個函數。這是錯誤說的。 – kindall

回答

1
G=numpy.exp(-(wl-b)**2/c**2)*a 

我認爲會工作......因爲你可以在整個numpy的陣列往往下降就像他們是一個單一的價值,並得到一個新的數組計算值的

(改變^**,因爲我想你想不電源按位異或)

你可以看到這種行爲,像這樣

t1 = numpy.array([1,2,3]) 
print t1 - 1 
print t1 * 2 
print t1^2 
print (t1^2)*2 
+0

謝謝,我不知道他們可以像這樣對待。但是,我得到一個與另一個函數有關的錯誤:'TypeError:ufunc'bitwise_xor'不支持輸入類型'。 – Pythonice

+0

^是XOR不是功率,如果你想使用'**'因爲你的列表是浮點數,它不知道如何異或(或類似的東西至少...) –

0

如果wl是一個列表(或numpy.ndarray),你不能做wl(x)

也許你需要x代替wl(x)a*exp(-(wl(x)-b)^2/c^2)