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函数也可以产生均匀分布的随机整数。