matlab函数之rand及其相关函数

rand

  • matlab中通过rand函数产生的是介于0到1(不包括1)之间的伪随机数
  • X = rand范围(0,1).
  • X = rand(n)表示产生一个n×n的随机矩阵,n必须是整数,否则会报错。
  • X = rand(sz1,...,szN)
  • X = rand(sz)
  • X = rand(___,typename)
  • X = rand(___,'like',p)
  • 可以与取整函数搭配使用
  • 为了使每次执行rand函数时产生和之前不相同的一组伪随机数,通常需要初始化随机数种子。方法很多, 常见的一种是在写m文件时,在程序的开头写:rand('state',sum(100*clock)) 定义一个随时间变化的初值。

randi

  • randi 均匀分布的伪随机整数
  • 最新英文文档(推荐)
  • randi函数产生均匀分布的伪随机整数(Uniformly distributed pseudorandom integers)
  • X = randi(imax)返回一个介于1到imax的伪随机整数,闭区间[1,imax].
  • X = randi(imax,n)返回一个在[1,imax]范围内的n*n的伪随机整数矩阵
  • X = randi(imax,sz1,...,szN)
  • X = randi(imax,sz)
  • X = randi(imax,classname)
  • X = randi(imax,n,classname)
  • X = randi(imax,sz1,...,szN,classname)
  • X = randi(imax,sz,classname)
  • X = randi(imax,'like',p)
  • X = randi(imax,n,'like',p)
  • X = randi(imax,sz1,...,szN,'like',p)
  • X = randi(imax,sz,'like',p)
  • X = randi([imin,imax],___)

  • 指定生成区间randi([1,4]),生成[1,4]的随机整数

  • 栗子:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    %生成一个由样本区间 [-5,5] 中均匀分布的随机整数组成的 10×1 列向量。 
    r = randi([-5,5],10,1)
    r = 10×1
    3
    4
    -4
    5
    1
    -4
    -2
    1
    5
    5

randperm

  • randperm
  • 语法:
    • p = randperm(n)返回行向量,其中包含从 1 到 n(包括二者)之间的整数随机置换。
    • p = randperm(n,k)返回行向量,其中包含在 1 到 n(包括二者)之间随机选择的 k 个唯一整数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
randperm(6)
可能是向量
[3 2 6 4 1 5]
也可能是从 16 的整数的其他一些置换,具体取决于随机数生成器的状态。对 randperm 连续调用两次通常会返回两个不同的向量:
randperm(6)
ans =
5 2 6 4 1 3

randperm(6)
ans =
4 1 6 2 3 5



randperm(6,3)
可能是向量
[4 2 5]
也可能是从 16(包括二者)的任何三个整数的其他一些置换,具体取决于随机数生成器的状态。
------ The Happy Ending ------