Repeat matrix element of a given matrix

my matrix is x=[2 5 3 6 1]
I want it to make it as y=[2 2 2 2 5 5 5 5 3 3 3 3 6 6 6 6 1 1 1 1]
which function does it?

1 Comment

This topic is discussed such frequently, that I miss it in the FAQ.

Sign in to comment.

 Accepted Answer

Jan
Jan on 11 Mar 2015
Edited: Jan on 11 Mar 2015
x = [2 5 3 6 1];
y = reshape(repmat(x, 4, 1), 1, []);
Or:
y = kron(x, ones(1, 4));

3 Comments

Thank you Jan Simon
Hi Jan Simon can you help me to regain x from y. I have used kron in my coding.
That would be
x = y(1:4:end);
This is basic matrix indexing.
In the future, start a new question rather than asking in comments.

Sign in to comment.

More Answers (3)

Stephen23
Stephen23 on 11 Mar 2015
Edited: Stephen23 on 11 Mar 2015
Another quick one-liner:
reshape(ones(4,1)*x,1,[])

2 Comments

Thank you Stephen Cobeldick
Hi Stephen Cobeldick can you help me to regain original matrix

Sign in to comment.

x = [2 5 3 6 1];
y = x(ceil((1:4*numel(x))/4));

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!