我正在尝试运行以下脚本。我的目的是得到输出,它将在中间产生一个高强度高斯,然后在大两侧产生两个小高斯。它是每次采用不同n值的所有y值的傅立叶求和,并将它们与x进行绘制。但不知何故,我没有得到理想的结果。一些帮助将不胜感激。代码 -
from pylab import *
n = 6
D = 6
x = linspace(-3, 3, 13000)
y = [1, 1, 1, 1, 1]
F = []
for i in range(1,n):
F=sum((item*cos(2*pi*i*x/D)for item in y))
plot(x,F,'r')
show()
答案 0 :(得分:0)
每次循环都会重新分配F
。这可能是您的问题,因为在循环结束时for i in range(1,n)
您将F作为数字,而不是数字的列表。
要创建F
值列表,只需将F = sum(....)
更改为F.append(sum(...))
,最后您将得到一个值列表。
另请注意,range(1, n)
是从1
到n-1
的范围。这可能是您想要的也可能不是。