在Julia中从两个向量创建向量

3

我有两个向量,比如说,x=[1;1]y=[2;2]

我想构建一个向量,其元素是这两个向量的组合,即z=[[1,2],[1,2]]

最有效的方法是什么?

1个回答

5

只需使用zip函数。默认情况下,它会创建一个元组向量:

julia> z = collect(zip(x,y))
2-element Array{Tuple{Int64,Int64},1}:
 (1,2)
 (1,2)

请注意,这与您想要的不同,但它会更加高效。如果您真的想要一个数组的数组,您可以使用推导式:
julia> [[a,b] for (a,b) in zip(x,y)]
2-element Array{Array{Int64,1},1}:
 [1,2]
 [1,2]

要更快地获取一个数组的数组,可以使用collect(map(collect, zip(x,y)))。虽然它仍然比单独使用zip慢,但比列表推导式快得多(我的测试显示快了500倍!) - Harrison Grodin
不是典型情况。你可能遇到了 https://github.com/JuliaLang/julia/issues/15276。 - tholy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接