首页 > 解决方案 > 如何在 Igor64 的过程中将波放入函数中

问题描述

我写了一个程序,通过一些计算从另一个波浪中产生一个波浪。该过程如下所示:

Function elipticity_calculation(rotation, elipticity, energy, calculated_elipticity)
    Wave rotation, elipticity, energy
    String calculated_elipticity

    Wave lambda
    lambda = 1240/energy
    Wave KK
    KK = lambda*lambda
    Wave w
    w = 1 - 93.33/KK
    Wave Q
    Q = 1/(w*w*lambda*sqrt(1+135/w))
    Wave delta
    delta = (Q*1.6*100000+2)*pi/180

    Duplicate/O rotation, $calculated_elipticity
    WAVE wOut = $calculated_elipticity
    wOut = (elipticity-rotation*cos(delta)/sin(delta))
End

但是,当我将函数放在命令窗口中时(见下文),它给了我一个语法错误:

预期的波名称。

elipticity_calculation(wave1, wave2, wave3, "calculated_elipticity")

我哪里错了?

谢谢

编辑:

我也试过这个:

Function elipticity_calculation(rotation, elipticity, energy,     calculated_elipticity)
    Wave rotation, elipticity, energy
    String calculated_elipticity

    Make $"lambda"/WAVE=lambda;
    lambda = 1240/energy
    Make $"KK"/WAVE=KK;
    KK = lambda*lambda
    Make $"w"/WAVE=w;
    w = 1 - 93.0665/KK

    Make $"Q"/WAVE=Q;
    Q = 1/(w*w*lambda*sqrt(1+136.24/w))
    Make $"delta"/WAVE=delta;
    delta = (Q*1.69508759865*100000+2.884488929)*pi/180

    Duplicate/O rotation, $calculated_elipticity
   WAVE wOut  = $calculated_elipticity
   wOut = (elipticity-rotation*cos(delta))/sin(delta)
End

但是,此代码为每个计算点创建新的波浪,并创建波浪 wOut 为空。

编辑:

我试过这个。然而。它不工作:

Function elipticity_calculation(rotation, elipticity, energy, calculated_elipticity)
Wave rotation, elipticity, energy
String calculated_elipticity

Make/FREE lambda 
lambda = 1240/energy
Make/FREE KK
KK = lambda*lambda
Make/FREE w
w = 1 - 93.0665/KK
Make/FREE kve
kve = 1/(w*w*lambda*sqrt(1+136.24/w))
Make/FREE delta
delta = (kve*1.69508759865*100000+2.884488929)*pi/180

Duplicate/O rotation, $calculated_elipticity
Make wOut = (elipticity-rotation*cos(delta))/sin(delta)

End

是否可以在对其进行一些计算后重写波形?就像在 Excel 中一样?

标签: igor

解决方案


波浪////是否存在于当前数据文件lambdaKKwQdelta

传递的 wave wave1//也需要存在于当前数据文件夹中wave2wave3

您可以打开调试和调试错误,以便 Igor Pro 在发生错误时弹出调试器。


推荐阅读