Duplicate elements in array n times, where n is an array itself

7 visualizaciones (últimos 30 días)
Oliver
Oliver el 2 de Sept. de 2016
Comentada: Oliver el 2 de Sept. de 2016
Hi everyone,
I have two arrays of the same length and would like to duplicate each element in the first array n times, where n is the value in the second array. Example:
A = [1 2 3]
B = [2 3 1]
then C shall be = [1 1 2 2 2 3]
How can this be done? I checked the forum and tried to play around with repmat but could not get it to work.
Any help is greatly appreciated! Thanks!

Respuesta aceptada

Stephen23
Stephen23 el 2 de Sept. de 2016
If you have MATLAB 2015a or more recent, then use repelem:
>> repelem([1 2 3],[2 3 1])
ans =
1 1 2 2 2 3

Más respuestas (1)

Azzi Abdelmalek
Azzi Abdelmalek el 2 de Sept. de 2016
A = [1 2 3]
B = [2 3 1]
C=cell2mat(arrayfun(@(x,y) repmat(x,1,y),A,B,'un',0))

Categorías

Más información sobre Matrices and Arrays 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!

Translated by