首页 > 解决方案 > 在 Julia 中将水平数组转换为垂直数组

问题描述

假设我有一个像这样的 3 元素数组:

A = [1, 2, 3]

我怎样才能将其转换为:

B = [1; 2; 3]

在朱莉娅?

标签: julia

解决方案


transpose创建一个Adjoint实际持有视图的对象

julia> A = [1, 2, 3];

julia> A'
1×3 LinearAlgebra.Adjoint{Int64,Array{Int64,1}}:
 1  2  3

用 collect 包裹它会产生一个实际的水平向量:

julia> collect(A')
1×3 Array{Int64,2}:
 99  2  3

但是,您需要了解,在 Julia 中,一维Vectors 始终是垂直的,而向量也可以由一维等于一的二维矩阵表示:

julia> B=[1 2 3]
1×3 Array{Int64,2}:
 1  2  3

julia> C = collect(B')
3×1 Array{Int64,2}:
 1
 2
 3

vec最后,可以使用函数或运算符将它们中的每一个转换为标准向量[:]

julia>  A == B[:] == C[:] == vec(B) == vec(C) == @view(C[:]) == @view(B[:])
true

推荐阅读