# How to set multiple arrays from a single array?

**URL:** <https://discourse.julialang.org/t/how-to-set-multiple-arrays-from-a-single-array/89851>\
**Category:** General Usage\
**Tags:** question, arrays\
**Created:** [November 6, 2022, 11:11pm UTC](https://discourse.julialang.org/t/how-to-set-multiple-arrays-from-a-single-array/89851 "2022-11-06T23:11:01Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![zxm403089989](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zxm403089989/32/43918_2.png) [@zxm403089989](https://discourse.julialang.org/u/zxm403089989)\
**Post date:** [November 6, 2022, 11:11pm UTC](https://discourse.julialang.org/t/how-to-set-multiple-arrays-from-a-single-array/89851/1 "2022-11-06T23:11:01Z")

</div>

Is there any way to directly define new array from a known larger array? For example:

```julia
a1,a2=[1 2;3 4]
2×2 Matrix{Int64}:
 1 2
 3 4
a1
1
a2
2

```

This doesn’t give results I need. However, if I set array from a vector of vector, it succeeds:

```julia
b1,b2=[[1 2],[3 4]]
2-element Vector{Matrix{Int64}}:
 [1 2]
 [3 4]
b1
1×2 Matrix{Int64}:
 1 2
b2
1×2 Matrix{Int64}:
 3 4

```

Therefore, is there any method to define array directly from a regular array (matrix, tensor), not nested array?

---

<div class="post-metadata">

**Author:** ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)\
**Post date:** [November 6, 2022, 11:16pm UTC](https://discourse.julialang.org/t/how-to-set-multiple-arrays-from-a-single-array/89851/2 "2022-11-06T23:16:29Z")

</div>

Looking to capture entire rows or columns?

```julia
a1, a2 = eachrow([1 2; 3 4])

```

---

<div class="post-metadata">

**Author:** ![zxm403089989](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zxm403089989/32/43918_2.png) [@zxm403089989](https://discourse.julialang.org/u/zxm403089989)\
**Post date:** [November 7, 2022, 6:55pm UTC](https://discourse.julialang.org/t/how-to-set-multiple-arrays-from-a-single-array/89851/3 "2022-11-07T18:55:46Z")

</div>

I think it’s no different to change into nested vectors and set variables.

---

<div class="post-metadata">

**Author:** ![Tbl](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tbl/32/5984_2.png) [@Tbl](https://discourse.julialang.org/u/Tbl)\
**Post date:** [November 7, 2022, 8:34pm UTC](https://discourse.julialang.org/t/how-to-set-multiple-arrays-from-a-single-array/89851/4 "2022-11-07T20:34:00Z")

</div>

But be wary that `eachrow` returns views to original matrix, that is makes references to the original matrix. If you want new vectors you may just project them by `Vector`.

---

<div class="post-metadata">

**Author:** ![zxm403089989](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zxm403089989/32/43918_2.png) [@zxm403089989](https://discourse.julialang.org/u/zxm403089989)\
**Post date:** [November 7, 2022, 9:11pm UTC](https://discourse.julialang.org/t/how-to-set-multiple-arrays-from-a-single-array/89851/5 "2022-11-07T21:11:48Z")

</div>

What’s the meaning of project? Do you mean `map` or some other functions?

---

<div class="post-metadata">

**Author:** ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)\
**Post date:** [November 7, 2022, 9:13pm UTC](https://discourse.julialang.org/t/how-to-set-multiple-arrays-from-a-single-array/89851/6 "2022-11-07T21:13:10Z")

</div>

You could just `collect` each view to make copies.

---

<div class="post-metadata">

**Author:** ![zxm403089989](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zxm403089989/32/43918_2.png) [@zxm403089989](https://discourse.julialang.org/u/zxm403089989)\
**Post date:** [November 7, 2022, 10:16pm UTC](https://discourse.julialang.org/t/how-to-set-multiple-arrays-from-a-single-array/89851/7 "2022-11-07T22:16:00Z")

</div>

I understand. Thx for your reply. I think your suggestion is also transfer matrix into vector of vector then set.
