首先,现在(2019年5月)randint()这个函数已经不能用了。
如果要求不能用ceil(rand())函数 间接地生成一定范围内的随机整数,则可以使用以下几种方案:
(比如:产生1到7的随机整数)
- unidrnd(7), %R = unidrnd(N),产生一个最大值为N的随机正整数R,R为1到N之间;
- randsrc(1,1,1:7)
- a=randperm(7) %产生1~n的不重复的数,划重点,是“不重复的数”
- randi([1 7],1,1) % 此 MATLAB 函数 返回均匀分布的伪随机整数
目前看来,randi最靠谱。
但是,如果要求生成的随机整数是均匀分布于某个区间的,则需要慎重考虑到底使用哪个,因为不是以上所有函数生成的整数都是均匀分布的,目前看来想要均匀分布的整数,除了ceil(rand()),就是randi()