我想创建5行1列的2D数组

时间:2018-08-17 07:13:46

标签: julia

如果我想创建1行5列的2D数组。 我可以做到

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

但是要创建5行1列的2D数组。我尝试过

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

但是我得到了一个不是我想要的一维数组

使其正常工作的唯一方法是

julia> b=reshape([1 2 3 4 5],5,1)
5×1 Array{Int64,2}:
 1
 2
 3
 4
 5

也许我在这里错过了一些关键信息。

2 个答案:

答案 0 :(得分:0)

您也可以执行a = [1 2 3 4 5]'

顺便说一句,对于Julia版本> 0.6,a的类型不是Array{Int64, 2},但是在这种情况下,LinearAlgebra.Adjoint{Int64,Array{Int64,2}}作为共轭转置是懒惰的。通过a = copy([1 2 3 4 5]')可以得到<= 0.6的行为。

答案 1 :(得分:0)

AFAIK没有语法糖。

我通常写:

hcat([1, 2, 3, 4, 5])

这很短,我很容易记住。

如果您使用reshape,则可以用:替换一维,这意味着您不必计数(这很有用,例如,当您获得输入向量作为变量时):

reshape([1 2 3 4 5], :, 1)

最后,您可以使用:

permutedims([1 2 3 4 5])