Randomising a vector with respect to the probability of the outcome
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Marek Galus
am 13 Okt. 2021
Kommentiert: Marek Galus
am 14 Okt. 2021
Hi, I have 60 trials which have two outcomes 0 and 1 with probabilities of 80% and 20%.
I want to randomise this 60x1 matrix in such a way that every 5 iterations, outcome 0 occurs 4 times and outcome 1 occurs once as they should.
I tried using ransrc but the 5x1 matrices that I get as an outcome very rarely match the desired probabilites.
2 Kommentare
Mitchell Thurston
am 13 Okt. 2021
This isn't a general case, but if I understand what you're wanting to do this'll do the job
result = zeros(60,1);
for i = 0:5:55
result(i + randi(5)) = 1;
end
Akzeptierte Antwort
Mohammad Alhashash
am 13 Okt. 2021
You can use the randperm function to build 12 basic 5-by-1 matrices and then map the values into 0 and 1 based one your probabilities.
Here what do I mean:
A = [];
m = 60; %length of the main matrix A
for i=1:5:m
a = randperm(5)';
a(a~=1) = 0; % this based on your probability, I used 20% 1 and 80% 0
A = [A;a];
end
Siehe auch
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!