# Split 2d array into array of 1d arrays

**URL:** https://discourse.julialang.org/t/split-2d-array-into-array-of-1d-arrays/28803
**Category:** General Usage
**Created:** [September 16, 2019, 5:33am UTC](https://discourse.julialang.org/t/split-2d-array-into-array-of-1d-arrays/28803 "2019-09-16T05:33:00Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![aahaselgrove](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aahaselgrove/32/9839_2.png) [@aahaselgrove](https://discourse.julialang.org/u/aahaselgrove)
#### Post date: [September 16, 2019, 5:33am UTC](https://discourse.julialang.org/t/split-2d-array-into-array-of-1d-arrays/28803/1 "2019-09-16T05:33:01Z")

</div>

If you have an array of arrays, you can join them into a 2d array as follows:

```julia
a = fill(ones(10), 10)
A = hcat(a...)

```

How can you do the reverse?

---

<div class="post-metadata">

### Author: ![braamvandyk](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/braamvandyk/32/5086_2.png) [@braamvandyk](https://discourse.julialang.org/u/braamvandyk)
#### Post date: [September 16, 2019, 5:44am UTC](https://discourse.julialang.org/t/split-2d-array-into-array-of-1d-arrays/28803/2 "2019-09-16T05:44:51Z")

</div>

I did this some time ago as well. Have a look [here](https://discourse.julialang.org/t/converting-a-matrix-into-an-array-of-arrays/17038) for the code with some community builds.

---

<div class="post-metadata">

### Author: ![aahaselgrove](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aahaselgrove/32/9839_2.png) [@aahaselgrove](https://discourse.julialang.org/u/aahaselgrove)
#### Post date: [September 16, 2019, 6:06am UTC](https://discourse.julialang.org/t/split-2d-array-into-array-of-1d-arrays/28803/3 "2019-09-16T06:06:42Z")

</div>

Thanks. I assumed this was a duplicate question but couldn’t find a relevant thread. In short, the solution is:

```julia
[A[:, i] for i in 1:size(A, 2)]

```

Edit: Thanks @DNF

---

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [September 16, 2019, 6:10am UTC](https://discourse.julialang.org/t/split-2d-array-into-array-of-1d-arrays/28803/4 "2019-09-16T06:10:04Z")

</div>

Since Julia 1.1, we also have `eachrow` for this.

---

<div class="post-metadata">

### Author: ![cortner](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cortner/32/204_2.png) [@cortner](https://discourse.julialang.org/u/cortner)
#### Post date: [September 16, 2019, 6:39am UTC](https://discourse.julialang.org/t/split-2d-array-into-array-of-1d-arrays/28803/5 "2019-09-16T06:39:18Z")

</div>

If the Columns are short, consider reinterpret to reinterpret the matrix as an array off SVectors.

---

<div class="post-metadata">

### Author: ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)
#### Post date: [September 16, 2019, 6:51am UTC](https://discourse.julialang.org/t/split-2d-array-into-array-of-1d-arrays/28803/6 "2019-09-16T06:51:33Z")

</div>

The inverse of `hcat` would be `eachcolumn` or `[A[:, i] for i in 1:size(A,2)]`.

BTW, `reduce(hcat, a)` is preferable to splatting for efficiency reasons.
