如何在 MATLAB 中生成已知概率的随机向量 (0,1)

发布于 2024-12-02 11:14:24 字数 198 浏览 0 评论 0 原文

我使用以下代码

operation=[rand(1,noOfNodes)>prob];

生成 1 和零(noOfNodes 次)。如果我使用 prob=0.2 并尝试 100 个值,则在某些情况下会存在 40 个零。是不是很奇怪?

我需要得到小于 0.2 的零的概率

I am using the following code

operation=[rand(1,noOfNodes)>prob];

to generate 1 and zeros (noOfNodes times). If I use prob=0.2 and try 100 values there exist in some cases 40 zeros. Isn't it weird?

I need the probability of getting zeros less than 0.2

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小伙你站住 2024-12-09 11:14:24

不,这并不奇怪。这对你来说是概率。

如果你抛硬币 100 次,你并不总是得到 50 次正面和 50 次反面。有时你会得到 49 和 51,在极少数情况下,你甚至可能得到 100 次相同的结果。

使用上面的代码,当 noOfNodes 为 100 时,不能保证始终获得 20 个零和 80 个 1。如果您想生成一个始终具有 20% 零的向量,但是通过零和一的随机排序,那么您可以使用函数RANDPERM 像这样:

operation = [zeros(1,20) ones(1,80)];  %# Fill the vector with 0 and 1
operation = operation(randperm(100));  %# Randomly reorder it

如果你想生成一个从 0% 开始的向量到 20% 零,您可以使用函数 RANDI 修改上面的代码:

operation = [randi([0 1],1,20) ones(1,80)];
operation = operation(randperm(100));

No, that's not weird. That's probability for ya.

If you flip a coin 100 times, you don't always get 50 heads and 50 tails. Sometimes you get 49 and 51, and on that rarest of occasions you can even get the same one 100 times.

With your above code you're not guaranteed to always get 20 zeroes and 80 ones when noOfNodes is 100. If you want to generate a vector that always has 20% zeroes, but with a random ordering of zeroes and ones, then you can accomplish this using the function RANDPERM like so:

operation = [zeros(1,20) ones(1,80)];  %# Fill the vector with 0 and 1
operation = operation(randperm(100));  %# Randomly reorder it

If you want to generate a vector that has anywhere from 0% to 20% zeroes, you can modify the code above using the function RANDI:

operation = [randi([0 1],1,20) ones(1,80)];
operation = operation(randperm(100));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文