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

7 次查看(过去 30 天)
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!

采纳的回答

Stephen23
Stephen23 2016-9-2
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

更多回答(1 个)

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

类别

Help CenterFile Exchange 中查找有关 Matrices and Arrays 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by