整理一下Matlab里的随机函数功能。
- randperm函数
randperm(n) % 产生从1到n的随机排列(整数类型);
randperm(n, m) % 产生m个属于1到n的随机整数;
- randsrc函数
out = randsrc % -1 或 1
out = randsrc(m) % m*m 个 -1 或 1
out = randsrc(m,n) % m*n 个 -1 或 1
out = randsrc(m,n,alphabet) % 指定返回值为 alphabet 中的元素
out = randsrc(m,n,[alphabet; prob]) % 指定概率
out = randsrc(4, 3, [1 2])
out =
1 2 2
2 1 1
1 2 2
1 2 2
out = randsrc(5, 2, [1 2; 0.1, 0.9])
out =
1 2
2 2
2 2
2 1
2 2
- unifrnd函数
R = unifrnd(A,B) % 返回A和B之间的随机数
R = unifrnd(A,B,m,n) % 返回 m*n 个A和B之间的随机数
unifrnd(3, 4)
ans =
3.6981
unifrnd(3, [3, 4, 5])
ans =
3.0000 3.8819 4.3384
unifrnd(3, 4, 2, 3)
ans =
3.6665 3.1280 3.1711
3.1781 3.9991 3.0326
- unidrnd函数
R = unidrnd(N) % 返回不大于N的随机整数
R = unidrnd(N, m, n) % 返回 m*n 个不大于N的随机整数
unidrnd(4)
ans =
2
R = unidrnd(4, 2, 3)
R =
1 2 3
2 1 1
- rand函数
均匀分布,介于0~1之间;
- randn函数
高斯分布,比如产生均值为0.1,方差为0.1的高斯分布矩阵:
x = 0.1 + sqrt(0.1) * randn(4);