我的代码不输出完整的参数方程,只输出python中的第一个值

2024-10-03 04:29:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找到一组特定绘图的参数方程,但是当我实现代码时,我只得到第一个值。代码来自一个网站,因为我不是很精通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)

任何帮助都将不胜感激


Tags: lambda代码importmaplenasnpabs
2条回答

我试图使代码工作,但我无法做到这一点。 问题id是,当您调用map(...)时,您创建了一个迭代器,因此为了打印它的内容,您必须执行以下操作:

for data in iterator:
     print(data)

她的问题是,当你应用lambda函数时,如果你在变量上循环,它什么也不返回

您可以转换for循环中的所有lambda,但是您必须考虑三重参数lambda

问题出在台阶上

s=map(lambda a,b,c :
    a+str(b)+"-2*sp.pi*t*"+str(c)+")",
          s,P,range(1,len(list(P))+1))

它返回空列表。若要解决此问题,请将sP转换为列表,然后再馈送到此map函数。在上面加两行

s = list(s)
P = list(P)

示例的输出

134723/25+308794/391*np.sin(-1016/709-2*sp.pi*t*1)+2537094/989*np.sin(641/835-2*sp.pi*t*2)+264721/598*np.sin(-68/241-2*sp.pi*t*3)+285344/787*np.sin(-84/997-2*sp.pi*t*4)+118145/543*np.sin(-190/737-2*sp.pi*t*5)+281400/761*np.sin(-469/956-2*sp.pi*t*6)+1451/8*np.sin(-563/489-2*sp.pi*t*7)+122323/624*np.sin(-311/343-2*sp.pi*t*8)+115874/719*np.sin(-137/183-2*sp.pi*t*9)+171452/861*np.sin(-67/52-2*sp.pi*t*10)+18152/105*np.sin(-777/716-2*sp.pi*t*11)+24049/125*np.sin(-107/76-2*sp.pi*t*12)

相关问题 更多 >