replicating the elements of a cell matrix

2 vues (au cours des 30 derniers jours)
Sabbas
Sabbas le 26 Juil 2012
Dear all,
here is a cell matrix
k={
12 'kol'
23 'Sew'
45 'awe'
44 'wow'
}
I would like to replicate each element twice so as to have
k={
12 'kol'
12 'kol'
23 'Sew'
23 'Sew'
45 'awe'
45 'awe'
44 'wow'
44 'wow'
}
I was thinking something like
cr=cellfun(@(x) repmat(x,2,1),k,'uni',false);
but I do not know if I am correct. Is there any better code?
Would there any difference if I had
k={
'12' 'kol'
'23' 'Sew'
'45' 'awe'
'44' 'wow'
}
thanks

Réponse acceptée

the cyclist
the cyclist le 26 Juil 2012
Here's one way:
nk = size(k,1);
idx = [1:nk;1:nk];
k(idx(:),:)
  2 commentaires
Sabbas
Sabbas le 26 Juil 2012
Modifié(e) : Sabbas le 26 Juil 2012
if I wanted to replicate each element of the above matrix 1000 times instead of 2 how could I modify your code?
thanks
the cyclist
the cyclist le 26 Juil 2012
Use
idx = repmat(1:nk,[1000 1]);
in place of the second line.

Connectez-vous pour commenter.

Plus de réponses (1)

Sindar
Sindar le 6 Sep 2018
repelem(k,2,1)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by