Met*_*lon 4 transpose multidimensional-array julia
我有一个向量的向量,比如说
\njulia> m=[[1,2],[3,4],[5,6]]\n3-element Vector{Vector{Int64}}:\n [1, 2]\n [3, 4]\n [5, 6]\nRun Code Online (Sandbox Code Playgroud)\n我想要转置它,这意味着我想要一个 2 元素向量和相应的 3 元素向量(1,3,5 和 2,4,6)。
\n这显然可以通过循环来完成,但我怀疑这很慢,并且确信 Julia 有更好的解决方案。到目前为止我能想到的最好的一个看起来像这样:
\njulia> matrixM=reshape(collect(Iterators.flatten(m)), (size(m[1],1),size(m,1)))\n2\xc3\x973 Matrix{Int64}:\n 1 3 5\n 2 4 6\n\njulia> map(i->matrixM[i,:], 1:size(matrixM,1))\n2-element Vector{Vector{Int64}}:\n [1, 3, 5]\n [2, 4, 6]\nRun Code Online (Sandbox Code Playgroud)\n
您可以使用:
julia> using SplitApplyCombine
julia> invert([[1,2],[3,4],[5,6]])
2-element Vector{Vector{Int64}}:
[1, 3, 5]
[2, 4, 6]
Run Code Online (Sandbox Code Playgroud)