Matlab 中伪随机数的生成以及可复现的不放回等概率随机抽样
在一些统计分析和优化实验中,需要用到随机数,可是我们又无法得到真正的随机数。平时使用的都是伪随机数,是拿软件模拟的随机数。
比如,系统时间具有随机性,常常被用作位随机数种子。
利用matlab可以很方便的生成伪随机数,用来做统计抽样等各种实验。
比如,你要在1-100的整数中随机抽取42个不重复的样本。显然,这是一个典型的不放回抽样。如果单纯生成42个随机数,很容易,一行代码就可以解决。然而,大多时候,为了让我的随机抽样实验更加经得起别人的验证,我们需要想办法,让这个抽样可以复现,也就是说,让别人直到,我们的随机抽样不是靠心情人工瞎选的。
用matlab解决这个问题的方法有很多种,这里介绍我认为最方便的方法:
rng('default');%先将随机数生成器设置为默认值
rng(6);%设置伪随机数种子为6
randsample(100,42);%进行随机抽样
结果如下:
1 至 23 列
95 82 4