MATLAB Answers

Oliver
0

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

Oliver
さんによって質問されました 2016 年 9 月 2 日
最新アクティビティ Oliver
さんによって コメントされました 2016 年 9 月 2 日
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!

  1 件のコメント

Azzi Abdelmalek
2016 年 9 月 2 日
You mean how to duplicate (not to multiply)

サインイン to comment.

2 件の回答

回答者: Stephen Cobeldick
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 件のコメント

Oliver
2016 年 9 月 2 日
I do and thanks that works like a charm!

サインイン to comment.


回答者: 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))

  0 件のコメント

サインイン to comment.



Translated by