我需要編寫一個函數,它可以寫入並求解作爲兩個數組輸入的值的tan的倒數。有時分母上的數組包含零,因此總是除零。我不知道如何擺脫錯誤,並讓答案返回pi/2。函數來計算和繪製arctanx
def deviation(x):
if capture(x)==True:
for i in range(len(yvf)):
theta=sp.arctan(xvf/yvf) #xvf and yvf are two arrays
我需要編寫一個函數,它可以寫入並求解作爲兩個數組輸入的值的tan的倒數。有時分母上的數組包含零,因此總是除零。我不知道如何擺脫錯誤,並讓答案返回pi/2。函數來計算和繪製arctanx
def deviation(x):
if capture(x)==True:
for i in range(len(yvf)):
theta=sp.arctan(xvf/yvf) #xvf and yvf are two arrays
首先:寫xvf命令[i]和YVF [I]來訪問陣列的單個元件一個接一個。
其次辨別如果YVF [I]等於零與否:
if yvf[i] == 0:
theta = math.pi/2.0
else:
theta = sp.arctan(xvf[i]/yvf[i])
如果導入numpy的,我建議使用arctan2代替反正切(see this doc)。該函數在第二個參數中管理零值。
如果沒有,你可以用數學庫和zip內置功能ATAN2功能解決了這個問題:
import math
xvf = [0.,2.,2.]
yvf = [20.,0.,2.]
def arctan(xvf,yvf):
return [math.atan2(x,y) for x,y in zip(xvf,yvf)]
print arctan(xvf,yvf)