Copying part of a matrix to another empty matrix with the same indices

indexing, matlab, matrix

Solution

It does work. You just need to create `mat2` first:

mat2 = zeros(size(mat1));
mat2(2:4, 3:7) = mat1(2:4, 3:7);

Note that you don't need the square brackets on those ranges.

Problem

I'm trying to copy part of a matrix (matrix 1) in matlab to another empty matrix of zeros (matrix 2) so that the section I copy from matrix 1 has the same indices in matrix 2, e.g. Matrix 1 (mat1): ``` 0 3 0 0 2 4 1 2 6 1 3 4 2 0 0 0 2 0 0 2 6 1 3 6 6 1 1 0 0 0 2 1 3 3 1 0 1 4 5 2 3 3 0 0 1 ``` Matrix 2 (mat2) desired output: ``` 0 0 0 0 0 0 0 0 0 0 0 4 2 0 0 0 0 0 0 0 6 1 3 6 6 0 0 0 0 0 2 1 3 3 0 0 0 0 0 0 0 0 0 0 0 ``` I've tried something like ``` mat2([2:4],[3:7]) = mat1([2:4],[3:7]) ``` but of course it doesn't work... any ideas of an efficient way to do this? I couldn't find another thread to help with this problem. Thanks!

Original source