Matlab中随机数rand等的用法
Matlab中有关随机数rand的函数有非常多,希望能在这片文章中进行总结汇总,会随着我看的程序不断更新。
rand()
rand()函数主要的功能是生成0-1之间的随机数,其中输入参数决定生成的是单个随机数、随机数向量还是矩阵,具体例子如下:
产生单个随机数
函数:rand()
结果:
产生随机数向量
函数:rand(1,3)
结果:
产生随机数矩阵
函数:rand(2,3)
结果:
这里需要注意当rand()只有一个int输入参数时,生成的不是向量,而是一个方阵,例子如下:
函数:rand(3)
结果:
使用rand()生成某范围内随机数
通过上面的例子我们知道,rand()可以生成0-1的随机数,但如果我们希望生成某范围内的随机数应该怎么办,例子如下:
生成0-n范围内的随机数
rand()*n
生成m-n范围内的随机数
m<n
m+rand()*(n-m)
rand()中seed的用法
seed的目的是为了让随机数产生的不那么随机,使用方法如下:
n=5;
rand('seed',n); %在用rand()生成随机数前,使用seed,这里的n为一确定整数
rand(1,3)
结果:
思考:
通过上面的例子,我们可以看出,每一个整数seed,相当于对应了一个随机数的库,当确定了seed的值后,也就相当于告诉了rand()需要去哪个随机数库中不断取随机数。所以虽然rand(‘seed’,n)之后,每次rand()的值不是相同的,但每次rand(‘seed’,n)之后,第一次的rand()的值是相同的,第二次对应的rand()的值也是相同的。
rand(‘seed’,n)设定后,除了对rand()生效,对所有类似的随机数产生函数都生效。
randperm()
主要功能:随机生成一个由整数构成的向量。
其可以有一个输入参数randperm(n)
或两个输入参数randperm(m,n)
一个输入参数
函数格式:randperm(n)
功能:将1-n这n个整数随机排列成一个向量
结果:
两个输入参数
函数格式:randperm(m,n)
功能:在1-m这m个整数中,随机选取n个,并随机排列成一个向量(m需要大于n)
结果:
randperm()的常用方法
randperm()经常用来调换矩阵中行或者列的顺序:
当我们需要对原矩阵中的行或者列进行重新的随机排列时,使用randperm()是非常合适的,具体例子如下:
参考
https://blog.csdn.net/weixin_41058790/article/details/80277878
https://blog.csdn.net/xuxinrk/article/details/80961657
https://blog.csdn.net/ac540101928/article/details/53067960