Plot 如何修复绘图中的噪音[julia]

Plot 如何修复绘图中的噪音[julia],plot,julia,plots.jl,Plot,Julia,Plots.jl,我有一个由另一个函数随机生成的函数。 我的目标是让该函数生成大约10次,并找到所有函数的预期值 我的问题是: 每当我试图直接画一个随机函数(通过绘制它的生成函数,例如)它都是完美的,但是当我尝试在中间有某种函数时,它都会下山。< /P> 我想,也许,因为生成的函数使用了我在其中声明的一些变量,那么当你试图将它传递给下一个函数时,它可能会有一些问题,但是即使我避免在其中使用变量,它仍然会出现问题 工作守则: plot(generatingFunction()) 错误代码: function

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

我的问题是: 每当我试图直接画一个随机函数(通过绘制它的生成函数,例如)它都是完美的,但是当我尝试在中间有某种函数时,它都会下山。< /P>
我想,也许,因为生成的函数使用了我在其中声明的一些变量,那么当你试图将它传递给下一个函数时,它可能会有一些问题,但是即使我避免在其中使用变量,它仍然会出现问题


工作守则:

plot(generatingFunction())
错误代码:

function R(x)            
     generatingFunction()(x)
end
plot(R)
Julia总是在将参数传递给函数之前对其进行求值。因此,当调用
plot(generatingFunction())
时,与执行以下操作相同:

f = generatingFunction()
plot(f)
相反,当您将函数的创建-
generatingFunction()
-放在另一个函数中时,每次调用
R
时,Julia都会创建一个新版本

这里您真正想要的是将
f
的创建移到
R
的计算之外-您可以将其作为
常量
全局或捕获的闭包来执行。后者的一个典型习语是:

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