gpt4 book ai didi

julia - 在循环中更改变量 [Julia]

转载 作者:行者123 更新时间:2023-12-01 01:44:38 25 4
gpt4 key购买 nike

在 Julia 1.0 中,我试图按照以下方式实现 for 循环:

while t1 < 2*tmax
tcol = rand()
t1 = t0 + tcol

t0 = t1
println(t0)
end

但是,我收到 t1 和 t0 未定义的错误。如果我在他们面前放一个“全局”,它会再次起作用。有没有比在我的代码中放置全局变量更好的方法来处理这个问题?

最佳答案

问题的原因是您在全局范围内运行代码(可能在 Julia REPL 中)。在这种情况下,您将不得不使用 global正如这里所解释的 https://docs.julialang.org/en/latest/manual/variables-and-scoping/ .

我可以推荐的最简单的方法是将您的代码包装在 let 中。像这样 block :

let t1=0.0, t0=0.0, tmax=2.0
while t1 < 2*tmax
tcol = rand()
t1 = t0 + tcol

t0 = t1
println(t0)
end
t0, t1
end

这边 let创建一个本地范围,如果您在全局范围内运行此 block (例如在 Julia REPL 中),一切正常。请注意,我把 t0, t1最后制作 let block 返回一个包含 t0 值的元组和 t1
您还可以将代码包装在一个函数中:
function myfun(t1, t0, tmax)
while t1 < 2*tmax
tcol = rand()
t1 = t0 + tcol

t0 = t1
println(t0)
end
t0, t1
end

然后调用 myfun使用适当的参数来获得相同的结果。

关于julia - 在循环中更改变量 [Julia],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51909814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com