matlab产生的随机数的均值,指定一个平均值,生成一组随机数

今天和大家分享一个比较冷门的技巧。

如下图所示,在D1单元格输入指定的平均值,需要在A4:F11单元格区域内生成一组随机数。要求这些随机数的平均值要等于D1指定的值。

59755055_1

在A4单元格输入以下公式:

=IF(AVERAGE($A$4:$F$11)=$D$1,A4,RANDBETWEEN(30,80)/10)

简单说下公式的意思:

RANDBETWEEN函数用于生成指定区间的随机数。

先使用RANDBETWEEN(30,80)生成30至80之间的随机数,再除以10,就得到3至8之间的小数。

AVERAGE($A$4:$F$11)用于计算A4:F11单元格的平均值。

在A4单元格内,用IF函数判断,如果A4:F11单元格的平均值等于D1单元格指定的值,就返回A4的本身的值,否则就生成3至8之间的小数。

由于公式引用了本身的值,所以输入公式后,会弹出警告对话框:

59755055_2

不要着急,还有一个开关需要我们打开。

依次单击【文件】【选项】【公式】,勾选【启用迭代计算】

最多迭代次数可以设置为1000,这里设置的次数越多,得到符合条件随机数的可能性就越大,但是次数过多,会增加计算量。

59755055_3

OK,只要我们修改D1单元格中指定的平均值,就会生成一组随机数,这些随机数的平均值就等于D1单元格的值。

59755055_4

需要注意,生成随机数的区间要根据指定平均值的大小适当调整。

假如指定平均值为10,而将随机数的区间设置为11至20,这个是永远不会得到预期结果的。

你也试试?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值