Python“无法调用'anonym_function_2”

问题描述 投票:0回答:2

我不是开发人员,那么这个问题可能很荒谬。我从sum1 sum2开头的两行出现错误(请参阅以下消息)。您能告诉我是否存在语法错误吗?

//Get single constituent sinusoid on z
    sx(i, k, N) =>
        sum1 = ReX_(k)*cos(2*pi*k*i/N)
        sum2 = ImX_(k)*sin(2*pi*k*i/N)
        return = sum1+sum2



Cannot call 'anonym_function_2' with arguments (fun_arg__<anonym_function_4_arg1_type>, fun_arg__<anonym_function_4_arg2_type>, fun_arg__<anonym_function_4_arg2_type>, series[float]);

Thx

python function return arguments trigonometry
2个回答
0
投票

您要编写的函数必须对python解释器具有适当的缩进。第二件事是要有适当的关键字,例如def用于函数声明,而return sum1+sum2不是return =sum1+sum2从函数内的a返回。

这里是正确的伪代码,可以帮助您理解代码语法。

def sx(i, k, N): 
  sum1 = ReX_(k)*cos(2*pi*k*i/N)
  sum2 = ImX_(k)*sin(2*pi*k*i/N)
  return sum1+sum2

您能否定义ReX_ImX_


0
投票

不使用return sum1 + sum2:s =>不起作用,'return'在变量声明中不是有效的类型关键字

//Real part of the Frequency Domain Representation
ReX(k) =>
    sum = 0.0
    for i=0 to N-1
        sum := sum + z[i]*cos(2*pi*k*i/N)
    return = sum

//Imaginary part of the Frequency Domain Representation
ImX(k) =>
    sum = 0.0
    for i=0 to N-1
        sum := sum + z[i]*sin(2*pi*k*i/N)
    return = -sum

//Get sinusoidal amplitude from frequency domain  
ReX_(k) =>
    case = 0.0
    if(k!=0 and k!=N/2)
        case := 2*ReX(k)/N
    if(k==0)
        case := ReX(k)/N
    if(k==N/2)
        case := ReX(k)/N
    return = case

 //Get sinusoidal amplitude from frequency domain  
ImX_(k) =>
    return = -2*ImX(k)/N

//Get full Fourier Transform
x(i, N) =>
    sum1 = 0.0
    sum2 = 0.0
    for k=0 to N/2
        sum1 := sum1 + ReX_(k)*cos(2*pi*k*i/N) 
    for k=0 to N/2
        sum2 := sum2 + ImX_(k)*sin(2*pi*k*i/N)
    return = sum1+sum2
© www.soinside.com 2019 - 2024. All rights reserved.