Created random sequence based on predefined vector

Given a vector
SP = [1 2 4 5 8 11 13 14 15 16 18 19 20];
I want to create random sequence based on the vector
Y = [4 24 35 8 9 20 42 40 12 13 49 22 32];
It means that in the random sequnce I want element one repeated 4 times, element 2 repeated 24 times, element 4 repeated 35 times, element 5 repeated 8 times, element 8 repeated 9 times and so on.
Hence, the length of the final sequence will be equal to the cumulative sum of Y
4 + 24 + 35 + 8 + 9 + 20 + 42 + 40 + 12 + 13 + 49 + 22 + 32 = 310

 Accepted Answer

v = repelem(SP,Y);
W = v(randperm(numel(v))) % numel(W)

More Answers (0)

Categories

Find more on Random Number Generation in Help Center and File Exchange

Products

Release

R2019a

Asked:

on 12 Sep 2019

Commented:

on 12 Sep 2019

Community Treasure Hunt

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

Start Hunting!