Repeat matrix element of a given matrix

1 visualizzazione (ultimi 30 giorni)
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 Commento
Jan
Jan il 11 Mar 2015
This topic is discussed such frequently, that I miss it in the FAQ.

Accedi per commentare.

Risposta accettata

Jan
Jan il 11 Mar 2015
Modificato: Jan il 11 Mar 2015
x = [2 5 3 6 1];
y = reshape(repmat(x, 4, 1), 1, []);
Or:
y = kron(x, ones(1, 4));
  3 Commenti
Nikhil Chourasia
Nikhil Chourasia il 13 Mar 2015
Hi Jan Simon can you help me to regain x from y. I have used kron in my coding.
Guillaume
Guillaume il 13 Mar 2015
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.

Accedi per commentare.

Più risposte (3)

Stephen23
Stephen23 il 11 Mar 2015
Modificato: Stephen23 il 11 Mar 2015
Another quick one-liner:
reshape(ones(4,1)*x,1,[])
  2 Commenti
Nikhil Chourasia
Nikhil Chourasia il 11 Mar 2015
Thank you Stephen Cobeldick
Nikhil Chourasia
Nikhil Chourasia il 13 Mar 2015
Hi Stephen Cobeldick can you help me to regain original matrix

Accedi per commentare.


Guillaume
Guillaume il 11 Mar 2015
New in 2015a, repelem:
repelem(x, 4)

Andrei Bobrov
Andrei Bobrov il 11 Mar 2015
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!

Translated by