Matlab之rand(), randn(), randi()函数的使用方法
1. rand()函数用于生成取值在(0~1)之间均匀分布的伪随机数。
rand(n):生成n*n的0~1之间的满足均匀分布的伪随机矩阵;
rand(m,n):生成m*n的伪随机数;
rand(m,n,'double'):生成m*n的双精度伪随机数;
rand(m,n,'single'):生成m*n的单精度伪随机数;
注:‘double’和‘single’单引号不能省。
2. randn()函数用于生成标准正态分布的伪随机数。
randn:产生均值为0,方差σ^2 = 1,标准差σ = 1的正态分布的随机数或矩阵的函数。
用法:
Y = randn(n):返回一个n*n的随机项的矩阵。如果n不是个数量,将返回错误信息。
Y = randn(m,n) 或 Y = randn([m n]):返回一个m*n的随机项矩阵。
Y = randn(m,n,p,...) 或 Y = randn([m n p...]):产生随机数组。
Y = randn(size(A)):返回一个和A有同样维数大小的随机数组。
randn
返回一个每次都变化的数量。
s = randn('state')
举例
Example 1. R = randn(3,4) 将生成矩阵
R =
1.1650 0.3516 0.0591 0.8717
0.6268 -0.6965 1.7971 -1.4462
0.0751 1.6961 0.2641 -0.7012
For a histogram of the randn distribution, see hist.
Example 2. 产生一个随机分布的指定均值和方差的矩阵:将randn产生的结果乘以标准差,然后加上期望均值即可。例如,产生均值为0.6,方差为0.1的一个5*5的随机数方式如下:
x = .6 + sqrt(0.1) * randn(5)
x =
0.8713 0.4735 0.8114 0.0927 0.7672
0.9966 0.8182 0.9766 0.6814 0.6694
0.0960 0.8579 0.2197 0.2659 0.3085
0.1443 0.8251 0.5937 1.0475 -0.0864
0.7806 1.0080 0.5504 0.3454 0.5813
3. randi()函数用于生成均匀分布的伪随机整数,范围为(imin~imax)(开区间),若imin缺省,默认为1.
randi(imax,1) 或 randi(imax):生成1*1的小于imax的伪随机整数 ;
randi(imax,n):生成n*n的小于imax的伪随机矩阵;
randi(imax,m,n) 或 randi(imax,[m,n]]):生成m*n的伪随机矩阵;
randi(imax,m,n,p,...) 或 randi(imax,[m,n,p,...]):生成m*n*p*...的伪随机矩阵;
randi(imax,size(A)):生成和A同维的伪随机矩阵;
randi([imin,imax],n):生成n*n的,元素取值范围为[imin,imax]的伪随机矩阵。
注:前面若有imin,则[imin,imax]方括号不可缺省。
源自:https://blog.csdn.net/weixin_40583722/article/details/79165966