创建满足约束的随机数的Matlab函数
作为输入,我有两个数字x和y<代码>x>y。创建满足约束的随机数的Matlab函数,matlab,random,Matlab,Random,作为输入,我有两个数字x和yx>y。 我想精确地创建y非零随机数,它们的和将等于x。我知道randi([min-max])函数。你能帮我吗?在Matlab FEX中查看该文件。我相信这将回答您的问题。请查看Matlab FEX中的文件。我相信这会回答你的问题。如果我答对了,你想要这样的东西: data = rand(1,y); data = data * x / sum(data); 数据将精确地包含y正均匀分布的数字,其总和等于x如果我做对了,您希望这样: data = rand(1,y);
我想精确地创建
y
非零随机数,它们的和将等于x
。我知道randi([min-max])
函数。你能帮我吗?在Matlab FEX中查看该文件。我相信这将回答您的问题。请查看Matlab FEX中的文件。我相信这会回答你的问题。如果我答对了,你想要这样的东西:
data = rand(1,y);
data = data * x / sum(data);
数据
将精确地包含y
正均匀分布的数字,其总和等于x
如果我做对了,您希望这样:
data = rand(1,y);
data = data * x / sum(data);
数据
将精确地包含y
正均匀分布的数字,其总和等于x
Leonid的方法肯定会生成一组具有正确总和的随机数,但它不会在允许的空间内均匀选择。如果这一点很重要,那么可以采用以下方法:
(x=1时):
这些n_i显然是一个。通过考虑n_i给定实现的概率,很容易证明一致性 Leonid的方法肯定会生成一组具有正确和的随机数,但它不会在允许的空间上进行统一选择。如果这一点很重要,那么可以采用以下方法: (x=1时):
这些n_i显然是一个。通过考虑n_i给定实现的概率,很容易证明一致性 谢谢我会检查一件事所有的y数字都应该是非零的谢谢我会检查一件事所有的y数字都应该是非零的