How to create Random Binary Number with fix amount of 1 and 0?
18 次查看(过去 30 天)
显示 更早的评论
Hi all, I need help to create a random binary numbers (length of 30), but there should be only four "1" in it.
Appreciate if anyone can help me on this.
Thank you
0 个评论
回答(2 个)
Mohammad Sami
2022-7-22
You can try the following.
bin_len = 30;
num_1 = 4;
n = 100;
binfunc = @(~)sum(pow2(randperm(bin_len,num_1)-1));
bnout = arrayfun(binfunc,1:n)
dec2bin(bnout(1),bin_len)
0 个评论
Voss
2022-7-22
bin_len = 30;
num_1 = 4;
% initialize numeric vector of 30 zeros
bnout = zeros(1,bin_len);
% place ones at 4 random indices
bnout(randperm(bin_len,num_1)) = 1;
disp(bnout)
% if you want a character (instead of numeric) vector
bnout = char(bnout+'0');
disp(bnout)
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Random Number Generation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!