向数组添加附加维度

Wol*_*olf 6 julia

注意:此问题/答案是从Julia Slack频道复制的。

如果我有一个任意的Julia Array,该如何添加另一个维度。

julia> a = [1, 2, 3, 4]
4-element Array{Int64,1}:
 1
 2
 3
 4
Run Code Online (Sandbox Code Playgroud)

所需的输出将是例如:

julia> a[some_magic, :]
1×4 Array{Int64,2}:
 1  2  3  4
Run Code Online (Sandbox Code Playgroud)

要么:

julia> a[:, some_magic]
4×1 Array{Int64,2}:
 1
 2
 3
 4

Run Code Online (Sandbox Code Playgroud)

Bog*_*ski 6

我通常要做的一件不太棘手的事情是:

julia> reshape(a, 1, :)
1×4 Array{Int64,2}:
 1  2  3  4

julia> reshape(a, :, 1)
4×1 Array{Int64,2}:
 1
 2
 3
 4
Run Code Online (Sandbox Code Playgroud)

(它似乎也减少了打字)

最后,可以完成将向量转换为列矩阵的常见情况:

julia> hcat(a)
4×1 Array{Int64,2}:
 1
 2
 3
 4
Run Code Online (Sandbox Code Playgroud)

如果添加尾随尺寸,也可以编辑:

julia> a = [1,2,3,4]
4-element Array{Int64,1}:
 1
 2
 3
 4

julia> a[:,:]
4×1 Array{Int64,2}:
 1
 2
 3
 4

julia> a[:,:,:]
4×1×1 Array{Int64,3}:
[:, :, 1] =
 1
 2
 3
 4
Run Code Online (Sandbox Code Playgroud)