如何修复 Plots 中的噪声 [julia]
How to fix noise in 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
我有一个函数是由另一个函数随机生成的。 我的目标是让该函数生成大约 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