只有 Python Error 只有 length-1 数组可以转换为 Python 标量



我是python编码的新手我正在编写一个代码来计算序列的总和,我首先编写了一个函数,其中输入是总和的迭代次数,但是当我编译时,它会在 def G(i) 下的行中给我错误:只有 length-1 数组可以转换为 Python 标量

你能帮我吗

import matplotlib.pyplot as plt
import numpy as np
import scipy.special as sp
import pylab as pylab
def G(i):
    return (sum(((-1*(2*l+1))/(4*np.pi*(l**2+l)))*sp.legendre(l)(0.5)  for l in i))
pylab.ylim([-1,1])
sumrange = np.arange(1,70,1)
plt.plot(sumrange,G(sumrange),color='red')

问题源于i是一个序列,而不是单个值。在您的情况下,它np.arange(1,70,1).

当你调用range(1,i,1)时,这没有意义:i不是单个值。您可以通过将for l in range(1,i,1)替换为for l in i来修复它。

还有其他一些问题——我不确定cosgamma在哪里定义。将来应提供最小、完整和可验证的示例。

最新更新