Repeat matrix element of a given matrix

2 vues (au cours des 30 derniers jours)
Nikhil Chourasia
Nikhil Chourasia le 11 Mar 2015
Commenté : Andrei Bobrov le 13 Mar 2015
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 commentaire
Jan
Jan le 11 Mar 2015
This topic is discussed such frequently, that I miss it in the FAQ.

Connectez-vous pour commenter.

Réponse acceptée

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

Connectez-vous pour commenter.

Plus de réponses (3)

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

Connectez-vous pour commenter.


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

Andrei Bobrov
Andrei Bobrov le 11 Mar 2015
x = [2 5 3 6 1];
y = x(ceil((1:4*numel(x))/4));
  3 commentaires
Nikhil Chourasia
Nikhil Chourasia le 13 Mar 2015
Hi Andrei Bobrov can you help me to regain x from y
Andrei Bobrov
Andrei Bobrov le 13 Mar 2015
x = unique(y);

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by