user2524828
user2524828

Reputation: 181

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

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!

Upvotes: 3

Views: 14568

Answers (2)

paddy
paddy

Reputation: 63481

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.

Upvotes: 7

Dan455
Dan455

Reputation: 352

Do this:

mat2 = zeros(size(mat1));

Before copying over.

Upvotes: 2

Related Questions