如何在 Julia 中转置字符串数组?

Ale*_*hin 6 julia

它适用于数字,但不适用于字符串。

[1 2]'工作,但是["a" "b"]'没有。

为什么?以及如何做到这一点?

ffe*_*tte 11

为什么?

["a" "b"]'不起作用,因为'运算符实际上计算了矩阵的(惰性)伴随。请注意,如文档中所述,adjoint是递归的:

Base.adjoint函数

adjoint(A)

惰性伴随(共轭转置)(也是后缀')。请注意,adjoint它递归地应用于元素。

此操作旨在用于线性代数 - 有关一般数据操作,请参阅 permutedims。

在这种情况下发生的事情不仅[1 2]adjoint在对角线上翻转元素;它还递归地在每个元素上调用自己以使其共轭。由于没有为字符串定义共轭,因此在 的情况下会失败["a" "b"]


如何?

根据文档的建议,permutedims用于一般数据操作:

julia> permutedims(["a" "b"])
2×1 Array{String,2}:
 "a"
 "b"
Run Code Online (Sandbox Code Playgroud)


Prz*_*fel 6

转置通常用于线性代数运算,但在您的情况下,最简单的方法就是删除维度:

julia> a = ["a" "b"]
1×2 Array{String,2}:
 "a"  "b"

julia> a[:]
2-element Array{String,1}:
 "a"
 "b"
Run Code Online (Sandbox Code Playgroud)