gpt4 book ai didi

julia - `map` 相当于 2d 列表推导式

转载 作者:行者123 更新时间:2023-12-03 18:36:17 24 4
gpt4 key购买 nike

在 1d 中,我可以使用以下任一方法:

[i for i in 1:5] 
或者
map(1:5) do i 
i
end
两者都产生
[1,2,3,4,5]
有没有办法在更高维度上使用 map?例如复制
[x + y for x in 1:5,y in 10:13] 
产生
5×4 Array{Int64,2}:
11 12 13 14
12 13 14 15
13 14 15 16
14 15 16 17
15 16 17 18

最佳答案

你可以这样做:

julia> map(Iterators.product(1:3, 10:15)) do (x,y)
x+y
end
3×6 Array{Int64,2}:
11 12 13 14 15 16
12 13 14 15 16 17
13 14 15 16 17 18
你写的理解是我认为只是 collect(x+y for (x,y) in Iterators.product(1:5, 10:13)) , .注意括号 (x,y) ,因为 do 函数得到一个元组。与 x,y 不同,它有两个参数:
julia> map(1:3, 11:13) do x,y
x+y
end
3-element Array{Int64,1}:
12
14
16

关于julia - `map` 相当于 2d 列表推导式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64325730/

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