Matlab中randint()、rand()与randi()函数
1. randint()使用方法(randint在后期版本中会被randi代替)
f = randint(n,m) :产生一个元素为0或1的n×m的随机矩阵
f = randint(n,m,[a b]):产生一个n×m,元素是区间[a,b]的随机矩阵
f = randint(n,m,b):
-
如果b为正数,产生一个n×m,元素是[0,b-1]的随机矩阵
-
如果b为负数,产生一个n×m,元素是[b+1,0]的随机矩阵
在新版本生成元素为0或1的n×m随机矩阵:
f = round(rand(n,m)) %round 四舍五入
2. rand()使用方法 (元素均在(0,1)内)
X = rand 返回一个在区间 (0,1) 内均匀分布的随机数
X = rand(n) 返回一个 n×n 的随机数矩阵
X = rand(n,m) 返回一个 n×m的随机数矩阵
3. randi()使用方法
X = randi(imax) 返回一个介于 1 和 imax 之间的伪随机整数标量
X = randi(imax,n) 返回 n×n 矩阵,其中包含从区间 [1,imax] 的均匀离散分布中得到的伪随机整数
X = randi(imax,n,m) 返回n×m 数组,元素为介于1和imax的随机整数
X = randi([imin,imax],___) 使用以上任何语法返回一个数组,其中包含从区间 [imin,imax] 的均匀离散分布中得到的整数
4.randperm() 使用方法
p = randperm(n) 返回行向量,其中包含从 1 到 n(包括二者)之间的整数随机置换。
randperm(6)
输出:
[6 3 5 1 2 4]
p = randperm(n,k) 返回行向量,其中包含在 1 到 n(包括二者)之间随机选择的 k 个唯一整数
randperm(6,3)
输出:
[1 5 6]
5.unidrnd()使用方法
1.unidrnd(n) %产生从1到N所指定的最大数数之间的离散均匀随机整数
unidrnd(4)
输出:4
2.unidrnd(n,k) % 产生kxk矩阵,每个元素为从1到N所指定的
最大数数之间的离散均匀随机整数
unidrnd(4,3)
输出:
1 3 2
4 4 3
4 3 1
3.unidrnd(n,k,m) % kxm矩阵
unidrnd(4,3,2)
输出:
3 1
1 1
2 4
6. randn() 正态分布的随机数
X = randn 返回一个从标准正态分布中得到的随机标量。
X = randn(n) 返回由正态分布的随机数组成的 n×n 矩阵。
X = randn(sz1,...,szN) 返回由随机数组成的 sz1×...×szN 数组,其中 sz1,...,szN 指示每个维度的大小。例如:randn(3,4) 返回一个 3×4 的矩阵。
X = randn(sz) 返回由随机数组成的数组,其中大小向量 sz 定义 size(X)。例如:randn([3 4]) 返回一个 3×4 的矩阵。
X = randn(___,typename) 返回由 typename 数据类型的随机数组成的数组。typename 输入可以是 'single' 或 'double'。您可以使用上述语法中的任何输入参数。
X = randn(___,'like',p) 返回由 p 等随机数组成的数组;也就是与 p 同一对象类型。您可以指定 typename 或 'like',但不能同时指定两者。