rand系列函数

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1,rand生成均匀分布的伪随机数。分布在(0~1)之间

主要语法:rand(m,n)生成m行n列的均匀分布的伪随机数

rand(m,n,'double')生成指定精度的均匀分布的伪随机数,参数还可以是'single'

rand(RandStream,m,n)利用指定的RandStream(我理解为随机种子)生成伪随机数rand(n):生成0到1之间的n阶随机数方阵

rand(m,n):生成0到1之间的m×n的随机数矩阵

2,randn生成标准正态分布的伪随机数(均值为0,方差为1)

主要语法:和上面一样

3, randi生成均匀分布的伪随机整数

主要语法:randi(iMax)在闭区间[1,iMax]生成均匀分布的伪随机整数

randi(iMax,m,n)在闭区间[1,iMax]生成mXn型随机矩阵

randi([iMin,iMax],m,n)在闭区间[iMin,iMax]生成mXn型随机矩阵

4,randperm随机打乱一个数字序列

randperm(n):产生一个1到n的随机顺序。

>> randperm(10)

ans =

6 4 8 9 3 5

7 10 2 1

p = randperm(n,k) 返回一行从1到n的整数中的k个,而且这k个数也是不相同的。randperm完成的是不重复的重排采样(k-permutations),如果结果中的数需要重复多次出现的情况,则可以用:randi(n,1,k)。

5,randerr函数

randerr(20,7)产生什么矩阵?

产生一个20×7的矩阵,矩阵每一行随机有一个元素为1,其余的为0

out2 = randerr(8,7,[0 2; .25 .75])

每行出现零个错误的概率是25%

出现2个错误的概率是75%(值为1表示出现错误)

(1)产生随机矩阵,并返回制定范围内的元素

>a = randi([-50 50], 1, 100);

>b = find(a > 20 & a < 40)2

(2)产生一个元素为0和1,size为100×5的随机矩阵,返回元素全为1的行。

>a = randi([0, 1], 100, 5)

>b=find(all(a,2))3

(3)随机产生10个12位的0、1二进制序列,要求每个序列中包含7个1和5个0的形式。%程序如下

>N =10;

>data = randerr(N, 12, 7)';

>data = data( : )';

>str1 = dec2bin(data);

>str2 = reshape(str1, 12, N);

>seque = str2'

6,randint函数

randint(n,m)产生的是一个n*m维的矩阵,矩阵的元素或者是0或者是1,是随机的。如果想产生一个范围的数,可以设置一个区间,如randint(2,3,[1 6]),就是产生一个2*3随机矩阵,这个矩阵的元素是区间[1 6]的随机数。

还有这种情况,用一个数字来表示区间,比如,matlab中randint(num,N,3) 表示生产一个num*N的矩阵,矩阵中元素取值范围为[0,(3-1)]

若那个数值为负,比如matlab中randint(num,N,-3),则表示区间为[-3+1,0]

7,randsrc

randsrc

无参数形式,随机输出-1或1;

randsrc(m,n);

randsrc(m);

输出m*n阶或m*m阶矩阵,元素为随机出现的-1或1,概率为1/2;

相关文档
最新文档