replicating the elements of a cell matrix

3 visualizaciones (últimos 30 días)
Sabbas
Sabbas el 26 de Jul. de 2012
Respondida: Sindar el 6 de Sept. de 2018
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

Respuesta aceptada

the cyclist
the cyclist el 26 de Jul. de 2012
Here's one way:
nk = size(k,1);
idx = [1:nk;1:nk];
k(idx(:),:)
  2 comentarios
Sabbas
Sabbas el 26 de Jul. de 2012
Editada: Sabbas el 26 de Jul. de 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 el 26 de Jul. de 2012
Use
idx = repmat(1:nk,[1000 1]);
in place of the second line.

Iniciar sesión para comentar.

Más respuestas (1)

Sindar
Sindar el 6 de Sept. de 2018
repelem(k,2,1)

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by