如何将Julia中的嵌套列表转换为二维矩阵(多维数组)
Julia嵌套向量转矩阵解决方案
你可以根据你想要的矩阵行列对应关系,选择以下任意一种方法:
方法1:兼容所有Julia版本的通用写法
你之前用hcat、vcat没有得到预期结果,是因为没有使用splat(...)运算符拆分嵌套列表的内部子向量作为独立参数。
场景1:原嵌套列表的每个子向量作为矩阵的列
data = [[1,2],[4,5]] mat_col = hcat(data...) # 输出结果: # 2×2 Matrix{Int64}: # 1 4 # 2 5 # 调用mat_col[:,2]将返回 [4, 5]
场景2:原嵌套列表的每个子向量作为矩阵的行(多数场景的预期结果)
先将每个一维子向量转置为行向量,再进行纵向拼接:
data = [[1,2],[4,5]] mat_row = reduce(vcat, permutedims.(data)) # 输出结果: # 2×2 Matrix{Int64}: # 1 2 # 4 5 # 调用mat_row[:,2]将返回 [2, 5]
方法2:使用stack函数(Julia 1.9+版本支持)
更高版本Julia提供了更简洁的stack函数,直接指定堆叠维度即可,无需手动拆分参数:
- 按列堆叠:
mat_col = stack(data, dims=2) - 按行堆叠:
mat_row = stack(data, dims=1)
内容的提问来源于stack exchange,提问作者RvdV
相关产品推荐
相关产品推荐

