How to create a set of random numbers

6 Ansichten (letzte 30 Tage)
Joy
Joy am 30 Mär. 2017
Kommentiert: Joy am 31 Mär. 2017
Hi, how I could generate random number 90 times
  1. probability space are 1, 2, 3
  2. totally 90 random numbers
  3. got 21 of 1, 38 of 2 and 31 of 3
Could you give me some solutions?
Thanks Joy

Akzeptierte Antwort

Stephen23
Stephen23 am 30 Mär. 2017
Bearbeitet: Stephen23 am 30 Mär. 2017
You could use randperm to randomly arrange a vector of exactly those numbers:
>> vec = [repmat(1,21,1);repmat(2,38,1);repmat(3,31,1)]; % or use REPELEM
>> vec = vec(randperm(numel(vec)));
And checking that it fulfills your requirements:
>> numel(vec)
ans = 90
>> nnz(vec==1)
ans = 21
>> nnz(vec==2)
ans = 38
>> nnz(vec==3)
ans = 31
  1 Kommentar
Joy
Joy am 31 Mär. 2017
Thanks lot. It's much better than using a for loop.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

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

Community Treasure Hunt

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

Start Hunting!

Translated by