MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by Ahmed Hussein on 28 Jun 2013

Dears,

I have a matrix A(3200,3), I want to repeat each element (not repeat the matrix)in this matrix 200 times.

Thank you

*No products are associated with this question.*

Answer by Roger Stafford on 28 Jun 2013

Edited by Roger Stafford on 28 Jun 2013

Accepted answer

A = reshape(repmat(A(:)',200,1),[],3);

This repeats the elements in the columns. If you want to repeat the along the rows do this:

A = reshape(repmat(reshape(A',[],1),1,200)',[],size(A,1))';

(Corrected)

Show 1 older comment

Roger Stafford on 28 Jun 2013

No, don't use that one. I corrected it to:

A = reshape(repmat(reshape(A',[],1),1,200)',[],size(A,1))';

(I had a senior moment.)

Roger Stafford on 29 Jun 2013

That code I gave you has one more transpose than is necessary. You can do it this way instead:

A = reshape(repmat(reshape(A',1,[]),200,1),[],size(A,1))';

## 2 Comments

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/80607#comment_157512

row-wise or column-wise?

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/80607#comment_157514

A=[0 0 0 I want A to be A=[ 0 0 0 0 0 0 . 0 0 0 . . . . and so on to 200 times then the second element and so on.