You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Julia中如何反转Vector{Vector{}}的分组结构?

Julia:反转嵌套向量的分组结构

给定嵌套向量:

x = [[0,1,2], [3,4,5]]

我们需要将其反转分组结构,把每个索引位置的元素收集到单独的向量中,最终得到:

y = [[0, 3], [1, 4], [2, 5]]

(后续需求是对y的每个元素计算最小值:minimum.(y))

解决方案

方法1:使用zip与map

zip(x...)会将原嵌套向量中对应索引的元素打包成元组,再通过map(collect, ...)把每个元组转换为向量:

y = map(collect, zip(x...))

执行结果:

julia> y = map(collect, zip(x...))
3-element Vector{Vector{Int64}}:
 [0, 3]
 [1, 4]
 [2, 5]

方法2:利用矩阵转置

如果所有子向量长度一致,可以先将嵌套向量拼接成矩阵,再提取每一列并转为向量:

y = eachcol(hcat(x...)) .|> collect

hcat(x...)会生成一个2×3的矩阵,eachcol遍历矩阵的每一列,最后通过collect将列转换为向量。

直接计算最小值(无需生成中间向量y)

如果只是为了后续计算minimum.(y),可以省略生成y的步骤,直接对zip(x...)的结果应用minimum:

minimum.(zip(x...))

执行结果:

julia> minimum.(zip(x...))
3-element Vector{Int64}:
 0
 1
 2

内容的提问来源于stack exchange,提问作者Nathan Boyer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 13:57:28