rng
作用:控制随机数的产生(Control random number generation)
实例1:每次产生随机数(调用rand, randi, randn)前,指定随机数生成种子,则会产生相同的随机数。
方法:rng(seed),注意:seed为非负整数
rng(1);
a = rand(1,2)
rng(1);
b = rand(1,2)
结果:
a =
0.4170 0.7203
b =
0.4170 0.7203
实例1:每次产生不同的随机数(调用rand, randi, randn)
方法:rng('shuffle')
rng('shuffle')
a1 = rand(1,2)
a2 = rand(1,2)
结果:
a1 =
0.3954 0.8219
a2 =
0.8381 0.5736
rand
实例1:在(0, 1)区间按均匀分布生成随机数
方法:rand(sz1,..szN)
>> rand(1,3)
ans =
0.4854 0.8003 0.1419
实例2:在任意(a, b)区间按均匀分布生成随机数
方法:rand(sz1,...szN)*(b-a)+a
比如生成(-10,10)区间内的均匀分布随机数:
>> rand(1,3)*20-10
ans =
-1.5648 8.3147 5.8441
randi
实例:在区间[a, b]按照均匀分布生成随机整数。
方法:randi([a, b], sz1,...szN)
>> randi([0,100],2,3)
ans =
96 3 94
66 85 68
randn
实例1:按照均值=0,标准差为1的正态分布生成随机数
方法:randn(sz1,...,szN)
实例2:按照均值=a,标准差为b的正态分布生成随机数
方法:b*randn(sz1,...,szN)+a
normrnd
normrnd(mu,sigma,[m,n,...])
按照均值=a,标准差为b的正态分布生成随机数
randsrc
实例:按自定义概率分布在样本池中进行随机抽样
方法:randsrc(m,n,[alphabet; prob])
alphabet为行向量,表示样本取值;prob为行向量,表示各元素的取值概率
>> res = randsrc(1,100,[20,70,90;0.1,0.7,0.2]);
>> hist(res)
绘制处直方图,可看出抽样结果符合预期分布。

本文介绍了如何在MATLAB中控制随机数生成,包括设置种子产生相同随机数、生成不同随机数、在特定区间按均匀分布生成随机数、按正态分布生成随机数以及按自定义概率分布进行随机抽样的方法和实例。

4117

被折叠的 条评论
为什么被折叠?



