How to set multiple arrays from a single array?

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

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:

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?

Looking to capture entire rows or columns?

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

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

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.

2 Likes

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

You could just collect each view to make copies.

1 Like

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