Suppose we want to construct one large vector `x`

and three smaller vectors `x1`

, `x2`

, `x3`

such that a relationship `x = [x1; x2; x3]`

is always maintained. Provided that each of the smaller vectors has 100 entries, this can be achieved by

```
julia> x = rand(300);
julia> x1 = @view(x[1:100]); x2 = @view(x[101:200]); x3 = @view(x[201:300]);
```

Here, real memory is allocated to `x`

, and `x1`

, `x2`

, `x3`

are just the views the portions of this memory.

What I would like achieve is something opposite: I would like to create three independent vectors `x1`

, `x2`

, `x3`

first and construct `x`

such that its each third views one of the memory allocated to `x1`

, `x2`

, `x3`

. In other words, I would like to do something like

```
julia> x1 = rand(100); x2 = rand(100); x3 = rand(100);
julia> x = [@view(x1); @view(x2); @view(x3)];
```

though this code does not work.

Does this capability already exist in Julia, or are there any packages doing this?