关于matlab生成随机数(转载)

一,matlab中生成随机数主要有三个函数:rand, randn,randi

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

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

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

rand(RandStream,m,n)利用指定的RandStream(我理解为随机种子)生成伪随机数

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

主要语法:和上面一样

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

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

randi(iMax,m,n)在开区间(0,iMax)生成mXn型随机矩阵

r = randi([iMin,iMax],m,n)在开区间(iMin,iMax)生成m*n型随机矩阵

示例验证:

均值分布

概率分布图:

y=rand(1,3000000);
    hist(y,2000);

[转载]关于matlab生成随机数

散点图:

y=rand(1,3000000);
    plot(y)

[转载]关于matlab生成随机数

正态分布

概率分布图:

y=randn(1,3000000);
    hist(y,2000);

[转载]关于matlab生成随机数

散点图:

y=randn(1,3000000);
    plot(y);

[转载]关于matlab生成随机数

二,关于随机种子,伪随机数的重复生成

正常情况下每次调用相同指令例如rand生成的伪随机数是不同的,

例如:

rand(1,3)

rand(1,3)

matlab的输出为:

ans =
    0.139043482536049 0.734007633362635 0.194791464843949
 

原文地址:https://www.cnblogs.com/stucp/p/2622369.html