# How to create a 2x1 Array?

**URL:** <https://discourse.julialang.org/t/how-to-create-a-2x1-array/8337>\
**Category:** New to Julia\
**Created:** [January 13, 2018, 5:51am UTC](https://discourse.julialang.org/t/how-to-create-a-2x1-array/8337 "2018-01-13T05:51:40Z")\
**Posts on this page:** 1\
**Showing post:** 44

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [March 28, 2019, 1:12am UTC](https://discourse.julialang.org/t/how-to-create-a-2x1-array/8337/44 "2019-03-28T01:12:48Z")

</div>

It was discussed in the lead up to 1.0 whether `[1; 2; 3]` should construct a vector or a matrix. But note that there’s nothing special about two dimensions in concatenation syntax in general:

```julia
julia> [rand(2); rand(2)]
4-element Array{Float64,1}:
 0.528860561644692
 0.2992626181507161
 0.6659761151342882
 0.423705081212141

julia> [rand(2, 2, 2); rand(2, 2, 2)]
4×2×2 Array{Float64,3}:
[:, :, 1] =
 0.91018 0.0499205
 0.136608 0.128014
 0.621301 0.0150574
 0.58328 0.694085

[:, :, 2] =
 0.533126 0.0534934
 0.974593 0.808837
 0.851397 0.407801
 0.699824 0.928702

julia> [rand(2, 2, 2) rand(2, 2, 2)]
2×4×2 Array{Float64,3}:
[:, :, 1] =
 0.590656 0.106946 0.7484 0.369444
 0.00954534 0.925276 0.0796861 0.467557

[:, :, 2] =
 0.482709 0.0137462 0.241554 0.566803
 0.970356 0.640528 0.737484 0.684

```

The `[... ; ...]` syntax calls `vcat` which does “concatenation along the first dimension”—regardless of how many dimensions the inputs have. If they’re vectors, it produces a vector, if they’re matrices, it produces a matrix, if they’re 3-tensors, it produces a 3-tensor, and so on. There does, however, have to be at least one output dimension since you’re concatenating at least two things vertically, so `vcat` of scalars does produce a vector. If we’d made `[1; 2; 3]` produce a 3×1 matrix then that would be arbitrarily treating 2-dimensionally arrays specially, which is a thing that Julia tries very hard to avoid and it would have to lower to something other than just plain `vcat` (or we’d have to make `vcat` treat matrices specially as well).

---

_[View the full topic](https://discourse.julialang.org/t/how-to-create-a-2x1-array/8337)._
