一,matlab中生成随机数主要有三个函数:rand, randn,randi函数
1,rand 生成均匀分布的伪随机数。分布在(0~1)之间spa
主要语法:rand(m,n)生成m行n列的均匀分布的伪随机数code
rand(m,n,'double')生成指定精度的均匀分布的伪随机数,参数还能够是'single'blog
rand(RandStream,m,n)利用指定的RandStream(我理解为随机种子)生成伪随机数io
产生随机整数:function
1 >> randint(1,1,[1 100]) 2 3 ans = 4 5 81 6 7 >> randint(10,1,[1 100]) 8 ??? randint(10,1,[1 100]) 9 | 10 Error: Missing variable or function. 11 12 >> randint(10,1,[1 100]) 13 14 ans = 15 16 56 17 96 18 46 19 53 20 90 21 20 22 40 23 15 24 49 25 29
2,randn 生成标准正态分布的伪随机数(均值为0,方差为1)class
主要语法:和上面同样随机数
3, randi 生成均匀分布的伪随机整数语法
主要语法:randi(iMax)在开区间(0,iMax)生成均匀分布的伪随机整数di
randi(iMax,m,n)在开区间(0,iMax)生成mXn型随机矩阵
r = randi([iMin,iMax],m,n)在开区间(iMin,iMax)生成m*n型随机矩阵
示例验证:
均值分布
几率分布图:
y=rand(1,3000000);
hist(y,2000);
二,关于随机种子,伪随机数的重复生成
正常状况下每次调用相同指令例如rand生成的伪随机数是不一样的,
例如:
rand(1,3)
rand(1,3)
matlab的输出为:
ans = 0.139043482536049 0.734007633362635 0.194791464843949