(1)用計算機產生的是“偽隨機數”。用投色子計數的方法產生真正的隨機數 , 但電腦若也這樣做 , 將會占用大量內存 ; 用噪聲發生器或放射性物質也可產生真正的隨機數 , 但不可重復 . 而用數學方法產生最適合計算機 , 這就是周期有限 , 易重復的 ” 偽隨機數 ”

matlab里和隨機數有關的函數:

betarnd 貝塔分布的隨機數生成器

binornd 二項分布的隨機數生成器

chi2rnd 卡方分布的隨機數生成器

exprnd 指數分布的隨機數生成器

frnd f分布的隨機數生成器

gamrnd 伽瑪分布的隨機數生成器

geornd 幾何分布的隨機數生成器

hygernd 超幾何分布的隨機數生成器

lognrnd 對數正態分布的隨機數生成器

nbinrnd 負二項分布的隨機數生成器

ncfrnd 非中心f分布的隨機數生成器

nctrnd 非中心t分布的隨機數生成器

ncx2rnd 非中心卡方分布的隨機數生成器

normrnd 正態(高斯)分布的隨機數生成器,normrnd(a,b,c,d):產生均值為a、方差為b大小為cXd的隨機矩陣

poissrnd 泊松分布的隨機數生成器

rand:產生均值為0.5、幅度在0~1之間的偽隨機數,rand(n):生成0到1之間的n階隨機數方陣,rand(m,n):生成0到1之間的m×n的隨機數矩陣

randn:產生均值為0、方差為1的高斯白噪聲,使用方式同rand

注:rand是0-1的均勻分布,randn是均值為0方差為1的正態分布

randperm(n):產生1到n的均勻分布隨機序列

raylrnd 瑞利分布的隨機數生成器

trnd 學生氏t分布的隨機數生成器

unidrnd 離散均勻分布的隨機數生成器

unifrnd 連續均勻分布的隨機數生成器

weibrnd 威布爾分布的隨機數生成器

以下介紹利用Matlab產生均值為0,方差為1的符合正態分布的高斯隨機數。

我們利用的函數為normrnd(a,b,c,d):產生均值為a、標准為b大小為cXd的隨機矩陣,它有如下三種參數形式:

R=normrnd(μ,σ)

R=normrnd(μ,σ):生成服從正態分布(μ參數代表均值,σ參數代表標准差)的隨機數。輸入的向量或矩陣μ和σ必須形式相同,輸出R也和它們形式相同。標量輸入將被擴展成和其它輸入具有相同維數的矩陣。

R=normrnd(μ,σ,m)

R=norrmrnd(μ,σ,m):生成服從正態分布(μ參數代表均值,σ參數代表標准差)的隨機數矩陣,矩陣的形式由m定義。m是一個1×2向量,其中的兩個元素分別代表返回值R中行與列的維數。

R=normrnd(μ,σ,m,n)

R=normrnd(μ,σ,m,n): 生成m×n形式的正態分布的隨機數矩陣。其中μ為均值,σ為標准方差,m、n為矩陣大小;

R = normrnd(0,1,4,4) %產生4×4的標准正態分布矩陣

R =

0.5377 0.3188 3.5784 0.7254

1.8339 -1.3077 2.7694 -0.0631

-2.2588 -0.4336 -1.3499 0.7147

0.8622 0.3426 3.0349 -0.2050

var(R) %默認方差公式

ans =

3.0868 0.6085 5.1253 0.2465

var(R,0) %默認方差公式(N-1)

ans =

3.0868 0.6085 5.1253 0.2465

var(R,1) %方差公式(N)

ans =

2.3151 0.4564 3.8440 0.1849

var(R,0,1) %列操作,第二參數為方差方式,第三參數為行、列標記

ans =

3.0868 0.6085 5.1253 0.2465

var(R,0,2) %行操作,第二參數為方差方式,第三參數為行、列標記

ans =

2.3549

3.3782

1.6184

2.0146

var(R’) %check the ans

ans =

2.3549 3.3782 1.6184 2.0146

var(R(:)) %矩陣所有元素的方差

ans =

2.6020

介紹rand產生相同隨機數的方法:

隨機數的產生需要有一個隨機的種子,因為用計算機產生的隨機數是通過遞推的方法得來的,必須有一個初始值。

用同一台電腦,且在初始值和遞推方法相同的情況下,可以產生相同的隨機序列

(1) rand:產生均值為0.5、幅度在0~1之間的偽隨機數

(2) randn:產生均值為0、方差為1的高斯白噪聲

(3) randperm(n):產生1到n的均勻分布隨機序列

(4) normrnd(a,b,c,d):產生均值為a、方差為b大小為cXd的隨機矩陣

還有很多的擴展函數,不再一一列出。不過他們都調用的是rand或者randn函數,由此可見在matlab里rand和randn是產生隨機數的關鍵所在。

有了rand和randn就可以產生輕松產生均勻分布和正態分布的隨機數了

(1)產生在[a,b]區間服從均勻分布隨機序列的方法

(b-a)*rand(m,n)+a

3*rand(2)+2

ans =

2.8166 2.0458

2.5964 4.2404

(2)產生服從正態分布的隨機數

randn(‘state’,2)

a=normrnd(0,1,1,6)

a =

1.7491 0.1326 0.3252 -0.7938 0.3149 -0.5273

randn(‘state’,2)

b=randn(1,6)

b =

1.7491 0.1326 0.3252 -0.7938 0.3149 -0.5273

randn(‘state’,2)

c=randn(2,3)

c =

1.7491 0.3252 0.3149

0.1326 -0.7938 -0.5273

d=randn(2,3)

d=

0.9323 -2.0457 1.7411

1.1647 -0.6444 0.4868

mean(a)

ans =

0.2001

randn(1,2)

ans =

1.0488 1.4886

randn(1,2)

ans =

1.2705 -1.8561

上邊幾個典型的例子可以看出:

(1)如果不設置種子,那么種子會“隨機”變化。每次使用randn就會得到不同的結果(c和d)

(2)種子相同時可以得到相同的結果,如果是矩陣那么只是將產生的隨機數按列重構(a、b、c)

(3)randn無法准確保證均值為0,小樣本的時候尤為明顯。去均值后可以嚴格保證均值為0,但是個人覺得意義不大。

(4)在不同的計算里得到的結果也可能有差別,特別是不同的操作系統。大家可以試一下這個語句

randn(‘state’,2);randn(1,6)看看結果,我電腦每次都一樣的

或者:

使用rng保留生成器設置

對於rand函數——rand(‘seed’,x),rand(‘state’,x),rand(‘twsier’,x);

對於randn——randn(‘seed’,x),randn(‘state’,x),randn(‘twsier’,x);

可查看萬能的help

matlab源知识库,MATLAB產生隨機數相关推荐

  1. trnd matlab什么意思,MATLAB隨機數生成器

    1.rand() 生成(0,1)區間上均勻分布的隨機數 基本語法:rand([M,N,P-]) 生成排列成M*N*P*-多維向量的隨機數.如果只寫M,則生成M*M矩陣:如果參數為[M,N]可以省略方括 ...

  2. (Matlab源码)Matlab实现算术编码(Arithmetic coding)超级详解(每一段代码都可以看懂)

    1.代码功能 输入:一个字符串 输出: codeword(码值) codeword所占的位数 2.代码框图 3.代码超详解 统计字符串中的字符种类,调用函数,放入数组b中. b=unique(str1 ...

  3. matlab resampc函数,基于contourlet变换的红外与可见光图像融合matlab源码

    基于contourlet变换的红外与可见光图像融合matlab源码 matlab 2020-12-1 下载地址 https://www.codedown123.com/53619.html 基于con ...

  4. 视觉机器学习20讲-MATLAB源码示例(17)-RBM学习算法

    视觉机器学习20讲-MATLAB源码示例(17)-RBM学习算法 1. RBM学习算法 2. Matlab仿真 3. 仿真结果 4. 小结 1. RBM学习算法 受限玻尔兹曼机(restricted ...

  5. 【基础智能优化算法】68种算法大合集+matlab源码+参考资料+永久更新

    目前已更新68种基础算法+matlab源码+参考资料 !!!!!! 2-蝴蝶优化算法 3--海洋捕食者算法 4-鲸鱼优化算法 5-乌燕鸥优化算法 6-灰狼优化算法 7-黑猩猩优化算法 8-原子搜索算法 ...

  6. 雷达信号处理程序源码 python 需达围像识别 雷达系统仿真代码源码 matlab SAR 雷达系统仿真程序集合 雷达压制干扰matlab程序 线性调联(IFM)脉冲压缩雷达伤真

    雷达信号处理程序源码 雷达系统仿真代码源码 matlab SAR 1.MAITOFPR 探地雷达数据处理MMITLAB程序 2.python 需达围像识别 3.SAR团达回波仿真matlab 4.SA ...

  7. 【音乐】基于matlab演奏《过火》【含Matlab源码 1875期】

    一.获取代码方式 获取代码方式1: [音乐]基于matlab演奏<过火>[含Matlab源码 1875期] 获取代码方式2: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代 ...

  8. 【音乐】基于matlab演奏《青花瓷》【含Matlab源码 1873期】

    一.获取代码方式 获取代码方式1: [音乐]基于matlab演奏<青花瓷>[含Matlab源码 1873期] 获取代码方式2: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此 ...

  9. 【优化布局】基于matlab免疫算法求解充电站最优布局【含Matlab源码 2539期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[生产调度]基于matlab免疫算法求解生产调度零等待问题[含Matlab源码 1178期] 点击上面蓝色字体,直接付费下载,即可. 获取 ...

最新文章

  1. 【 MATLAB】Subspace algorithm Simulation of TOA - Based Positioning
  2. Codeforces 989C (构造)
  3. 直播 | AAAI 2021:自然语言中token-aware的虚拟对抗样本训练
  4. Android SDK 目录说明
  5. 软件项目组织管理(九)项目人力资源管理
  6. 校办研修之计算机培训简报,“2018校本研修培训”第二期学习简报
  7. git-注册与激活-创建一个测试用途的仓库-github
  8. 代理模式 委派模式 策略模式_设计模式 - 委派模式
  9. oracle 11g Flashback Data Archive(闪回数据归档)
  10. android二级菜单ui,巧用PopupMenu实现NavigationView的二级子菜单
  11. POI 读取 Excel 文件(2003版本与2007版本的差异之处)
  12. java bigInteger +1 加常数
  13. Android 上百实例源码分析以及开源分析
  14. 所需即所获:像IDE一样使用 vim
  15. excel合并两列内容_一起来学习Excel表格两列合并一列的两种方法
  16. IDEA编译输出/控制台改为英文,运行信息报错信息改为英文
  17. Python match case结构化模式匹配
  18. 安科瑞消防应急照明和疏散指示在上海汽车城酒店的应用
  19. matlab换热器优化设计,采用MATLAB语言编程对U形管式换热器管板厚度进行优化设计...
  20. [渝粤教育] 扬州工业职业技术学院 “胖集”陪你环游“一带一路” 参考 资料

热门文章

  1. (个人笔记-无用勿喷)Windows软件包的安装与卸载
  2. 【BUAA_CO_LAB】计组p3p4碎碎念
  3. java 群名_网名丨沙雕又可爱的网名/群名
  4. 网络共享计算机权限访问,共享电脑没有访问权限_共享电脑无访问权限
  5. 计算任意多边形的面积
  6. XY6762/XY6765/XY8788 如何使用 DCT 工具配置 DWS 文件?
  7. Java - 传参到底是哪种? pass by value or pass by reference
  8. 排序?吹泡泡吹到排序
  9. 分面导航的详细操作方案
  10. Remix快速导入本地文件夹