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

 Akzeptierte Antwort

madhan ravi
madhan ravi am 12 Sep. 2019
Bearbeitet: madhan ravi am 12 Sep. 2019
v = repelem(SP,Y);
W = v(randperm(numel(v))) % numel(W)

2 Kommentare

luca
luca am 12 Sep. 2019
May you kindly explain how it works?
help repelem
help randperm

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Random Number Generation finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2019a

Gefragt:

am 12 Sep. 2019

Kommentiert:

am 12 Sep. 2019

Community Treasure Hunt

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

Start Hunting!

Translated by