Random but equal distribution of numbers 1 and 2
27 次查看(过去 30 天)
显示 更早的评论
Hello,
I need to get some kind of matrix or array with the numbers 1 and 2 randomly distributed, but I need the number of "ones" to be the same as the number of "twos".
Therefore, I applied the randsrc function, with 50% probability for number 1 and 50% probability for number 2.
However, when I run this, sometimes I do get what I want ([1,2,2,1] or [2,1,2,1], e.g.) but many times it is wrong (e.g., [1,1,1,2] or [2,2,2,2]).
The size doesn't necessarily need to be 1x4, I'm doing that for now but it will be 1x50 once I get it to work.
Anyone knows why this is not working, what am I doing wrong or has any other idea for how to do this?
a = randsrc(1,4,[1 2;0.5 0.5]);
0 个评论
采纳的回答
Steven Lord
2020-1-30
Do you need exactly equal numbers of 1's and 2's or just a vector where each element has an equal probability of being 1 or 2?
If the latter, you could use randi or randsrc.
If the former, start off with a vector with an equal number of 1's and 2's and shuffle it with randperm.
n = 10;
v = [ones(n, 1); 2*ones(n, 1)];
vshuffle = v(randperm(2*n));
% Display them side by side
[v, vshuffle]
更多回答(1 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!