微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何修复 Plots 中的噪音 [julia]

如何解决如何修复 Plots 中的噪音 [julia]

我有一个由另一个函数随机生成函数。 我的目标是生成大约 10 次该函数,并找到所有这些函数的期望值。

这是我的问题: 每当我尝试直接绘制随机函数(例如通过绘制生成函数)时,一切都很完美,但是当我尝试在中间添加某种函数时,一切都会下坡。


我想可能是因为生成函数使用了我在其中声明的一些变量,那么当您尝试将其传递给下一个函数时,它可能会出现某种问题,但即使我避免在其中使用变量它仍然很奇怪


工作代码

plot(generatingFunction())

错误代码

function R(x)            
     generatingFunction()(x)
end
plot(R)

working code plot bad code plot

解决方法

Julia 总是 在将参数传递给函数之前对其进行评估。因此,当您调用 plot(generatingFunction()) 时,它与执行相同:

f = generatingFunction()
plot(f)

相反,当您将函数的创建generatingFunction()—放入另一个函数中时,Julia 会在每次 R创建一个新版本叫!

function R(x)
     f = generatingFunction()            
     f(x)
end
plot(R)

您在这里真正想要的是将 f创建移到 R 的评估之外 - 您可以将其作为 const 全局或作为捕获的闭包。后者的典型习语是这样的:

let
    f = generatingFunction()
    global function R(x)
        f(x)
    end
end

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。