MATLAB如何使用rand函数创建均匀分布的随机矩阵

2020年12月17日22:08:58MATLAB如何使用rand函数创建均匀分布的随机矩阵已关闭评论

MATLAB如何使用rand函数创建均匀分布的随机矩阵

【语法说明】

R=rand(n):生成 n×n 随机数矩阵,元素服从参数为(0,1)的均匀分布。

R=rand(m,n)或R=rand([m,n]):生成m×n均匀分布的随机矩阵。

R=rand(m,n,p…)或R=rand([m,n,p,…]) :生成m×n×p×L的均匀分布的随机多维数组。

R=rand(…,classname):字符串 classname 指定随机数的数据类型,可取值为double或single,分别表示双精度浮点数和单精度浮点数,默认为double。

rand(‘seed’,sd)或rand(‘state’,sd):在MATLAB旧版本中,用这两条命令设置随机数种子。在MATLAB R2011b 中,用rng 函数代替。rand(‘seed’,sd)相当于 rng(sd,‘v4’),rand(‘state’,sd)相当于rng(sd,‘v5uniform’)。

【功能介绍】生成服从均匀分布的任意形状的数组,并附有设置随机数种子的功能。

【实例】

生成一个 0~1 之间服从均匀分布的随机数,如果该随机数大于0.5,则生成一个2×2、服从2~10之间均匀分布的随机矩阵,如果该随机数小于0.5,则生成5个0~9之间均匀分布的整数。

>> rand('seed',0);   % 设置随机数种子

>> if rand > 0.5    % 如果rand产生的随机数大于0.5,则执行b = rand(2,2)*(10-2)+2

b = rand(2,2)*(10-2)+2

else     % 如果该随机数小于0.5,则执行b = floor(rand(1,5)*10)

b = floor(rand(1,5)*10)

end

b =       % b的值

0 6 6 9 3

>> if rand > 0.5    % 第二次运行

b = rand(2,2)*(10-2)+2

else

b = floor(rand(1,5)*10)

end

b =

8.6477 2.4277

2.2766 6.2376

>> if rand > 0.5    % 第n次运行

b = rand(2,2)*(10-2)+2

else

b = floor(rand(1,5)*10)

end

b =

6 4 7 9 7

【实例讲解】计算机产生的随机数是伪随机数,rand('seed',0)将随机数种子设置为 0,因此只要下一次执行程序时也将种子设置为零,就能保证产生完全相同的结果。第二次运行时,由于种子已经发生变化,因此所得结果与第一次不一致。这个实例还给出了产生任意有限区间[a,b]内均匀分布随机数的方法: rand(m,n)*(b−a)+a。对产生的随机数取整即可得到均匀分布的整数,另外,randi函数也可以产生均匀分布的随机整数。

  • 版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。