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',但不能同时指定两者。