1. 程式人生 > >Matlab學習手記——隨機函式

Matlab學習手記——隨機函式

整理一下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);