我试图找到一组特定绘图的参数方程,但是当我实现代码时,我只得到第一个值。代码来自一个网站,因为我不是很精通python。我用的是3.6.5。代码如下:
import numpy as np
import scipy as sp
from fractions import Fraction
def trigSeries(x):
f=sp.fft(x)
n=len(x)
A0=abs(f[0])/n
A0=Fraction(A0).limit_denominator(1000)
hn=np.ceil(n/2)
f=f[1:int(hn)]
A=2*abs(f)/n
P=sp.pi/2-sp.angle(f)
A=map(Fraction,A)
A=map(lambda a:a.limit_denominator(1000),A)
P=map(Fraction,P)
P=map(lambda a:a.limit_denominator(1000),P)
s=map(str,A)
s=map(lambda a: a+"*np.sin(", s)
s=map(lambda a,b,c :
a+str(b)+"-2*sp.pi*t*"+str(c)+")",
s,P,range(1,len(list(P))+1))
s="+".join(s)
s=str(A0)+"+"+s
return s
x=[5041,4333,3625,3018,2816,2967,3625,4535,5800,6811,7823,8834,8429,7418,6305,5193,4181,3018,3018,3777,4687,5496,6912,7974,9087]
y=[4494,5577,6930,8825,10990,13426,14509,15456,15456,15186,15321,17486,19246,21005,21276,21952,22223,23712,25877,27501,28178,28448,27636,26960,25742]
xf=trigSeries(x)
print(xf)
任何帮助都将不胜感激
我试图使代码工作,但我无法做到这一点。 问题id是,当您调用
map(...)
时,您创建了一个迭代器,因此为了打印它的内容,您必须执行以下操作:她的问题是,当你应用
lambda
函数时,如果你在变量上循环,它什么也不返回您可以转换
for
循环中的所有lambda
,但是您必须考虑三重参数lambda
问题出在台阶上
它返回空列表。若要解决此问题,请将
s
和P
转换为列表,然后再馈送到此map
函数。在上面加两行示例的输出
相关问题 更多 >
编程相关推荐