If a=[1 2 3], b=[10 20 30], how to create c=[10 20 20 30 30 30]?

The b matrix i'th element is repeated the number of times the given number in 'a' matrix and placed in matix 'c'. Also if a=[0 1 2], b=[10 20 30] how to get c=[20 30 30]??

 Accepted Answer

More Answers (2)

Another way:
t = accumarray(cumsum([1,a]).',1);
c = b(cumsum(t(1:end-1)));

2 Comments

I assume you mean "t = " instead of "t - "

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!