How can I repeat each element of a vector different times and store them in a new vector
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Yufan Miao
el 19 de Feb. de 2013
Comentada: mahmoud osama
el 28 de Mzo. de 2020
Dear all,
I am a Matlab novice. I am sorry that my question may be silly.
Does anyone know that how I can repeat each element of a vector different times and then store them in a new vector?
Thank you in advance for the answers
Cheers!
1 comentario
mahmoud osama
el 28 de Mzo. de 2020
vector=[1 2 3]
vector = repele(vector,3)
this will repeat every element 3 times
output:
vector=[1 1 1 2 2 2 3 3 3]
Respuesta aceptada
Más respuestas (2)
Andrei Bobrov
el 20 de Feb. de 2013
Editada: Andrei Bobrov
el 21 de Feb. de 2013
r = [1 3 3 4 0 5];
x = 1:6;
t = r > 0;
a = cumsum(r(t));
b = zeros(1,a(end));
b(a - r(t) + 1) = 1;
x1 = x(t);
out = x1(cumsum(b));
Jos (10584)
el 19 de Feb. de 2013
Wayne pointed you to a run-length decoder/encoder.
Things become more simple if every element is to be repeated the same number of times:
% repeat all elements of A N times
A = [1 2 3]
N = 3 ;
B1 = reshape(repmat(A(:).',N,1),1,[])
% or
nA = numel(A) ;
B2 = A(ceil((1:nA*N)/nA))
0 comentarios
Ver también
Categorías
Más información sobre Startup and Shutdown en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!