gpt4 book ai didi

julia - 如何制作任意级别的嵌套for循环

转载 作者:行者123 更新时间:2023-12-04 14:59:03 24 4
gpt4 key购买 nike

我可以像这样做一个两级嵌套循环

for i1 in 1:n
for i2 in 1:n
do something with (i1,i2)

如何将其扩展到任意级别的嵌套循环?

例如,我可以在 Python 中执行此操作来循环 n^m 的笛卡尔积
for i in (itertools.product(xrange(n),repeat=m)):

喜欢
for i in (itertools.product(xrange(2),repeat=3)):
print i

(0, 0, 0)
(0, 0, 1)
(0, 1, 0)
(0, 1, 1)
(1, 0, 0)
(1, 0, 1)
(1, 1, 0)
(1, 1, 1)

谢谢@tholy 的评论。我已经成功应用了 Iterators.jl。我是 Julia 新手,所以我的代码可能很笨拙。
for i in product(repmat(Any[1:2],3)...)
println(i)
end

(1,1,1)
(2,1,1)
(1,2,1)
(2,2,1)
(1,1,2)
(2,1,2)
(1,2,2)
(2,2,2)

最佳答案

在 v0.5 中,Base 中有一个乘积迭代器,因此您现在可以将其写为 Base.product(fill(1:2,3)...) . fill生成一个数组,其中的值重复多次;我发现这比创建一个 1 元素数组并调用 repmat 更优雅一些。 .

关于julia - 如何制作任意级别的嵌套for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21950331/

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