当我编译以下程序时,Python会引发TypeError:只能将整数标量数组转换为标量索引。
这似乎是一个相对简单的程序执行,但是我似乎无法解决它。
频率
import matplotlib.pyplot as plt
import numpy as np
def period(n):
#masses
m = [1] * n
#lengths
l = [2] * n
M = sum(m)
num = 2 * math.pi * n
for i in range(n):
dem = dem + math.sqrt(g * m[i]/(l[i] * M))
return num/dem
x = np.arange(1, 10,1)
y = period(x)
plt.plot(x,y)
plt.show()
让M == sum from j==1 to n of the masses m_j
。我希望程序仅显示period
的图,其中period(n)
仅由1
的{{1}}到n
的总和来定义。
答案 0 :(得分:1)
使用列表推导将period
函数应用于x
数组中的每个条目,如下所示-
y = np.array([period(i) for i in x])
此外,您需要同时初始化dem
和g
-
dem = 0.0
g = 9.8