Arrays 函数,该函数接受2D数组并返回数组的元组';s列?

Arrays 函数,该函数接受2D数组并返回数组的元组';s列?,arrays,tuples,julia,Arrays,Tuples,Julia,如何将2D数组(n-by-m)转换为长度n的m向量的元组,该元组对应于数组的列?换句话说,我想要一个函数f,这样 julia> f([1 2 3; 4 5 6]) ([1,2,3],[4,5,6]) 朱莉娅提供了这样的功能吗?如果没有,我怎么能写一个呢?据我所知,没有内置的Julia函数可以满足您的需要,即 以二维数组(array{T,2})为例 返回对应于数组列的向量元组(数组{T,1},数组{T,1},…)) 然而,通过使用以下组合,您可以很容易地自己编写一个 列表理解 …运算

如何将2D数组(
n
-by-
m
)转换为长度
n
m
向量的元组,该元组对应于数组的列?换句话说,我想要一个函数
f
,这样

julia> f([1 2 3; 4 5 6])
([1,2,3],[4,5,6])

朱莉娅提供了这样的功能吗?如果没有,我怎么能写一个呢?

据我所知,没有内置的Julia函数可以满足您的需要,即

  • 以二维数组(
    array{T,2}
    )为例
  • 返回对应于数组列的向量元组
    (数组{T,1},数组{T,1},…)
然而,通过使用以下组合,您可以很容易地自己编写一个

  • 列表理解
  • 运算符
  • size
    函数
  • 元组
    函数
把它们放在一起
function f{T<:Any}(A::Array{T,2})
    return tuple([A[:,c] for c in 1:size(A,2)]...)
end
julia> A = rand(4,5)
4x5 Array{Float64,2}:
 0.21149   0.841894  0.275182   0.33981   0.0142366
 0.88409   0.718435  0.368415   0.521676  0.527016 
 0.482613  0.211109  0.394439   0.141225  0.071393 
 0.4477    0.330136  0.0303556  0.610213  0.699511 

julia> tup = f(A)
([0.21149,0.88409,0.482613,0.4477],[0.841894,0.718435,0.211109,0.330136],[0.275182,0.368415,0.394439,0.0303556],[0.33981,0.521676,0.141225,0.610213],[0.0142366,0.527016,0.071393,0.699511])

julia> typeof(tup)
(Array{Float64,1},Array{Float64,1},Array{Float64,1},Array{Float64,1},Array{Float64,1})