【问题标题】:Pass additional arguments to a built-in function将附加参数传递给内置函数
【发布时间】:2014-11-27 06:48:52
【问题描述】:

我对 Julia 很陌生,有一个看起来很简单的问题。假设我有一个函数,我将其命名为test(x::Vector, arg1, arg2),其中x 是一个变量向量,该函数有两个参数arg1arg2

我想针对向量x 优化(最小化)函数test。我不知道如何使用接受两个参数值的Optim 包中的优化函数。在 R 中,可以这样做:

optim(initial guest, test, arg1=value1,arg2=value2)

在 Julia 中是否有类似的方法来声明参数值?

【问题讨论】:

    标签: argument-passing julia


    【解决方案1】:

    您可以定义另一个函数来修复这些参数的值。

    # Function to minimize
    f(x::Vector, a, b) = (x[1] - a)^2 + (x[2] - b)^2
    
    using Optim
    g(x::Vector) = f(x, 3, 4)
    optimize(g, [0.,0.])
    

    您也可以使用匿名函数(但效率可能较低)。

    optimize(x -> f(x,3,4), [0.,0.])
    

    【讨论】:

    • 谢谢!这是我现在的问题的解决方法。不过,如果 Julia 函数可以采用额外的参数值,那就太好了。
    • 这个解决方案被认为是惯用的 Julia。见github.com/JuliaOpt/NLopt.jl/issues/27
    猜你喜欢
    • 2016-04-26
    • 1970-01-01
    • 2015-07-19
    • 2013-06-03
    • 2011-12-21
    • 2013-01-09
    • 1970-01-01
    • 2013-12-11
    • 2019-08-09
    相关资源
    最近更新 更多