# How to copy a 2D matrix to a slice of a 3D matrix in Octave

In our previous post we showed how to create a 3D matrix in Octave, for example this `2x4x3`

matrix:

```
>> A = zeros(2, 4, 3);
>> A
A =
ans(:,:,1) =
0 0 0 0
0 0 0 0
ans(:,:,2) =
0 0 0 0
0 0 0 0
ans(:,:,3) =
0 0 0 0
0 0 0 0
```

What if we want to copy a 2D matrix slice like

```
>> B = ones(2, 4)
B =
1 1 1 1
1 1 1 1
```

to the 3D matrix?

First, we need to think about which matrix indices we need to copy to.
Obviously, since `B`

is a `2x4`

matrix and A is a `2x4x3`

matrix, the third dimension needs to be fixed since the size of the first and second dimension of `A`

is identical to the dimension of `B`

.

Hence we can copy `B`

to either

`A(:,:,1)`

or`A(:,:,2)`

or`A(:,:,3)`

For example, we can copy `B`

to `A(:,:,2)`

using

```
A(:,:,2) = B
```

In our example with `B = ones(2,4)`

and `A = zeros(2,4,3)`

will look like this:

```
>> A(:,:,2) = B
A =
ans(:,:,1) =
0 0 0 0
0 0 0 0
ans(:,:,2) =
1 1 1 1
1 1 1 1
ans(:,:,3) =
0 0 0 0
0 0 0 0
```