将向量作为行添加到Julia中的矩阵

时间:2019-04-16 18:51:22

标签: julia

我的Julia代码中有一个向量和一个矩阵(Array {T,1}和Array {T,2}),我想附加它们,以使向量成为矩阵中的新行(应为第一排)。我已经尝试了几种方法(cat等),但是不断收到错误,我认为这些错误与数据的不同形状有关。请参见下面的示例。

julia> v = Vector([1, 2, 3])
3-element Array{Int64,1}:
 1
 2
 3

julia> m = Matrix([4 5 6; 7 8 9])
2×3 Array{Int64,2}:
 4  5  6
 7  8  9

julia> cat(v,m,dims=(1,2))
5×4 Array{Int64,2}:
 1  0  0  0
 2  0  0  0
 3  0  0  0
 0  4  5  6
 0  7  8  9

我真正想要的是

1 2 3
4 5 6
7 8 9

我意识到我可以将其与transpose(v)一起使用,但是我希望避免额外的通话。

谢谢!

1 个答案:

答案 0 :(得分:0)

只要您可以将v的结构更改为1 x 3数组,就可以避免转置:

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

julia> m = [4 5 6; 7 8 9]
2×3 Array{Int64,2}:
4  5  6
7  8  9

julia> vcat(v, m)
3×3 Array{Int64,2}:
1  2  3
4  5  6
7  8  9

我认为只是进行移调

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

julia> vcat(v2', m)
3×3 Array{Int64,2}:
1  2  3
4  5  6
7  8  9

效率几乎一样。