How can I replicate this matrix

1 visualización (últimos 30 días)
Ede gerlderlands
Ede gerlderlands el 18 de Dic. de 2012
I have F= 20x12 matrix and I want to get F2 =62x12 matrix in such away that The each element of F(20X12)is replicated by 3 and the last value has to be replicated 5 times so as to have 62x12 data
here is the matrix I worked upon and failed
for k =size(F,1);
a=repmat(F,3,1);
F2=[a(:);ones(2,1)*a(end)]
end;
but couldn't succeed..any help is highly appreciated

Respuesta aceptada

Pedro Villena
Pedro Villena el 18 de Dic. de 2012
Editada: Pedro Villena el 18 de Dic. de 2012
n=3; %%three times
m=2; %%plus two times for the final row
F2 = [];
for k=1:size(F,1),
F2 = [F2; repmat(F(k,:),n,1)];
end
F2 = [F2; repmat(F(end,:),m,1)];

Más respuestas (2)

Walter Roberson
Walter Roberson el 18 de Dic. de 2012
F2 = [repmat(F, 3, 1), F([end end], :)];
  2 comentarios
Ede gerlderlands
Ede gerlderlands el 18 de Dic. de 2012
Thanks, but this replicate the entire F three times not each element of 'F' successively and that's what I want?
Walter Roberson
Walter Roberson el 18 de Dic. de 2012
F2 = [kron(F, ones(3, 1)); F([end end], :)];

Iniciar sesión para comentar.


Daniel Shub
Daniel Shub el 18 de Dic. de 2012
I like questions that can be answered with one-liners ...
F([reshape(repmat(1:length(F), 3, 1), 3*length(F), 1); repmat(length(F), 2, 1)], :)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by