【发布时间】:2014-05-27 21:40:22
【问题描述】:
我想生成遵循正态分布并在某个范围内的随机数,例如 [3,17]。
我试过normrnd,但我无法指定它的范围。
【问题讨论】:
-
“正态分布”和“在某个范围内”是不兼容的要求。正态随机变量的范围是无限的
-
“正态分布”以
0为中心(可以通过加法移动)并用“mu,sigma”定义。如果您想要从 3 到 17 的随机分布(所有值或多或少均等分布),请尝试:round(rand(1,1000)*14+3)这会产生从 3 到 17(14+3) 的整数值。如果您不想要整数值,请删除/修改round-command -
@TheMinion 但是
rand生成的数字是均匀分布而不是正态分布。 -
我可以使用
abs(randn(1)*14+3)吗? -
@Misaki。 Abs 不应该有任何影响,因为正值的绝对值就是值本身。是的,我的代码导致了均匀分布。我真的不明白你的发行版应该是什么样子。正如路易斯·门多在评论中所写。没有一定范围的正态分布。你想要一个以 10 为中心、宽度为 7 的高斯分布吗?你能画/张贴一张图表吗?