[英]How to convert a Tuple{Array{Float64,1},Array{Float64,1}} to Array{Tuple{Float64,Float64},1} in julia
如何将Tuple{Array{Float64,1},Array{Float64,1}}
转换为Array{Tuple{Float64,Float64},1}
?
代码
#Sampling
function sam()
x = range(0, 10.0, length = 9) |> collect
y = range(0, 10.0, length = 9) |> collect
return (x,y)
end
xy = sam()
typeof(xy)
上面的代码返回这个 output:
Tuple{Array{Float64,1},Array{Float64,1}}
在您的情况下,最简单的方法是将 function 的 output 分配给两个单独的变量,如下所示:
function foo()
x = [1, 2, 3]
y = [4, 5, 6]
return x, y
end
x, y = foo()
然后您可以使用zip
将向量转换为元组的迭代器:
julia> x, y = foo()
([1, 2, 3], [4, 5, 6])
julia> x
3-element Array{Int64,1}:
1
2
3
julia> y
3-element Array{Int64,1}:
4
5
6
julia> z = zip(x, y)
zip([1, 2, 3], [4, 5, 6])
请注意,zip 的zip
是一个迭代器,而不是一个元组数组。 您可以遍历迭代器的元素以获取单个元组,
julia> foreach(println, z)
(1, 4)
(2, 5)
(3, 6)
或者,如果您确实需要一个元组数组,则可以收集迭代器:
julia> collect(z)
3-element Array{Tuple{Int64,Int64},1}:
(1, 4)
(2, 5)
(3, 6)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.