admin管理员组

文章数量:1625803


最近在matlab中使用了自带的随机函数randsample,但是发现最终的结果竟然不是随机的,每次结果都一样,后来发现Rand函数产生的随机数并不是真的现场算出来的,而是从一个随机数序列中取出来的。换句话说,第一次启动Matlab调用的第n次Rand函数与下一次启动调用的第n个Rand函数产生相同的数值。


为了使得每次结果不同,可以在rand函数(rand、randi、randsampe ...)前加上一行

rand('state',sum(100*clock));

但是matlab不推荐这种用法,因为以后的版本可能取消‘state'参数。所以可以使用 rng,例如

rng('shuffle')

详情可以输入 doc rng 看一下


本文标签: 随机数重启解决方法matlab