0
嘿我試圖得到以下問題的情節: U(x)= U0,如果| x | ≥x0 U(x)= U0 * | x |/x0 if | x | < X0只有長度爲1的數組可以轉換爲Python標量
和PROGRAMM:
from pylab import*
x_0=5
U_0=200
#U_x=zeros(n,1)
#x=zeros(n,1)
x=arange(-20,20,0.01)
if float(abs(x))>=x_0:
U_x=U_0
elif float(abs(x))<x_0:
U_x=U_0*(float(abs(x))/x_0)
fig=figure()
suptitle("a)")
fig.subplots_adjust(hspace=0.5)
plot(x,U_x)
xlabel('x [m]')
ylabel('U_x [J]')
show()
但我總是得到這樣的錯誤:
if float(abs(x))>=x_0:
TypeError: only length-1 arrays can be converted to Python scalars
請幫助:)
你的'x'是一個數組。 'abs()'需要一個標量。你想達到什麼目的? – 9000 2013-03-16 12:57:47
@ 9000:'abs()'不需要標量,它可以處理數組操作數;它是引發異常的'float()'。 – DSM 2013-03-16 13:01:47