一,matlab中生成随机数主要有三个函数:rand, randn,randi

1,rand 生成均匀分布的伪随机数。分布在(0~1)之间

主要语法:rand(m,n)生成m行n列的均匀分布的伪随机数

rand(m,n,'double')生成指定精度的均匀分布的伪随机数,参数还可以是'single'

rand(RandStream,m,n)利用指定的RandStream(我理解为随机种子)生成伪随机数

2,randn 生成标准正态分布的伪随机数(均值为0,方差为1)

主要语法:和上面一样

3, randi 生成均匀分布的伪随机整数

主要语法:randi(iMax)在开区间(0,iMax)生成均匀分布的伪随机整数

randi(iMax,m,n)在开区间(0,iMax)生成mXn型随机矩阵

r = randi([iMin,iMax],m,n)在开区间(iMin,iMax)生成mXn型随机矩阵

示例验证:

均值分布

概率分布图:

y=rand(1,3000000);

hist(y,2000);

散点图:

y=rand(1,3000000);

plot(y)

散点图:

y=randn(1,3000000);

plot(y);

二,关于随机种子,伪随机数的重复生成

正常情况下每次调用相同指令例如rand生成的伪随机数是不同的,

例如:

rand(1,3)

rand(1,3)

matlab的输出为:

ans =

0.139043482536049 0.734007633362635 0.194791464843949

ans =

0.602204766324215 0.937923745019422 0.149285414707192

如何使两个语句生成的随机数相等呢?

Matlab帮助中的下面章节有所叙述:

Managing the Default Stream

管理默认(缺省)流

rand, randn, and randi draw random numbers from an underlying random number stream, called the default stream. The @RandStream class allows you to get a handle to the default stream and control random number generation.

rand,randn,和randi 从一个基础的随机数流中得到随机数,叫做默认流。你可以通过 @RandStream 类得到默认流的句柄从而控制随机数的生成。

Get a handle to the default stream as follows:

以下为得到默认流句柄的代码:

defaultStream=RandStream.getDefaultStream defaultStream = mt19937ar random stream (current default) Seed: 0 RandnAlg: Ziggurat

Return the properties of the stream object with thegetmethod:

用get方法返回流对象属性:

get(defaultStream) Type: 'mt19937ar' NumStreams: 1 StreamIndex: 1 Substream: 1 Seed: 0 State: [625x1 uint32] RandnAlg: 'Ziggurat' Antithetic: 0 FullPrecision: 1

The State property is the internal state of the generator. You can save the State ofdefaultStream.

state属性是发生器的内部状态,你可以保存默认流的状态:

myState=defaultStream.State;

Using myState, you can restore the state of defaultStream and reproduce previous results.

利用myState你可以恢复默认流状态重新生成前面的结果:

myState=defaultStream.State; A=rand(1,100); defaultStream.State=myState; B=rand(1,100); isequal(A,B) ans = 1

你也可以直接使用@RandStream 类的reset静态方法重置种子状态来获取相同的随机生成序列,下面是示例代码:

stream = RandStream.getDefaultStream;%获取默认的随机种子(暂时这么叫,帮助有详细解释)

reset(stream);%重置

rand(stream,1,3)

reset(stream);%重置

rand(stream,1,3)

matlab的输出为:

ans =

0.814723686393179 0.905791937075619 0.126986816293506

ans =

0.814723686393179 0.905791937075619 0.126986816293506

可以看出生成的随机码是相等的,这样可以用于重复实验上来

原文@http://blog.sina.com.cn/s/blog_4b94ff130100edwh.html

16bit随机数生成matlab,关于matlab生成随机数相关推荐

  1. MATLAB 并行计算中生成随机数or文件名

    Matlab计算时为了提高运行速度需要通过parfor,或者option选项并行进行计算.但有些时候需要在并行计算中建立不可重复的文件名或者生成随机数,而有些内嵌的app中是无法多输入随机数的.同时并 ...

  2. java 随机数生成实现_Java中生成随机数的实现方法总结

    搜索热词 在实际开发工作中经常需要用到随机数.如有些系统中创建用户后会给用户一个随机的初始化密码.这个密码由于是随机的,为此往往只有用户自己知道.他们获取了这个随机密码之后,需要马上去系统中更改.这就 ...

  3. 通过随机数生成兑换码和概率生成随机数

    以下的方法是可以用来生成兑换码,以及按概率处理生成随机数的方法 首先是按概率生成随机数的方法,假设奖品有30000分,20000分,10000分,3000分,2000分 function get_ra ...

  4. python随机数生成并排序_python_生成随机数与列表排序

    1.  列表排序可采用两种方法 sorted(list) 直接改变list 调用list的方法 list.sort 2. random.randint(a,b) 生成大于等于a小于等于b的整数 ran ...

  5. matlab中怎样生成随机数——随机数生成函数rand家族

    随机数的生成在算法编程中非常常用,在matlab中rand(random的缩写)家族经常被使用. 小白一枚,敬请大神指教 rand家族成员 randMatrix = rand(x, y) randMa ...

  6. python随机数生成的方法_python生成随机数的方法

    一.概述 python可以通过random包来产生随机数或者执行一些随机操作. 1. random.seed() 给定一个数据作为随机数种子,和大多数语言一样,python也可以使用时间来作为随机数种 ...

  7. matlab舍选法编程,利用舍选抽样法生成随机数.pdf

    利用舍选抽样法生成随机数.pdf 2013年11月 重庆师范大学学报(自然科学版) Nov-2013 笙!!鲞笙!塑 !!!:!!!!!:! !!::!!!!!呈!!竺!竺!些!:竺!!!!!!:!! ...

  8. MATLAB 生成随机数 方法总汇 (各分布配图参考)

    目录 a. 基本随机数 1.rand() 2.randn() b. 连续型分布随机数 3.unifrnd() 4.normrnd() 5.chi2rnd() 6.frnd() 7.trnd() 8.b ...

  9. 【转】利用matlab生成随机数函数

    原文地址:利用matlab生成随机数函数 rand(n):生成0到1之间的n阶随机数方阵 rand(m,n):生成0到1之间的m×n的随机数矩阵 (现成的函数) betarnd:贝塔分布的随机数生成器 ...

最新文章

  1. vscode:解决操作git总让输入用户名及密码问题
  2. css中超级链接样式的设置顺序
  3. 【Luogu3383】【模板】线性筛素数
  4. [SimplePlayer] 1. 从视频文件中提取图像
  5. Hyperleger--共识算法 (2)
  6. (转载)Android开发在路上:少去踩坑,多走捷径
  7. C语言——实现简单的猜数字游戏
  8. 【Verilog设计—数字传输系统】ASK调制与FSK调制
  9. android gps测速算法,GPS定位与测速算法研究
  10. 域名注册查询批量筛选工具
  11. 台式计算机怎么进行打印机共享,台式机共享打印机的方法
  12. 2019-11-29-win10-UWP-Controls-by-function
  13. Arduino基础入门篇26—步进电机
  14. E4A易安卓计次循环和变量循环及数组
  15. Latex从.dtx文件分解得到.sty文件
  16. ps aux含义linux,Linux下ps aux解释
  17. autojs之浩然ocr-不安装插件就能用ocr
  18. 虚幻引擎5:快速入门学习教程
  19. 出现“Windows无法停用通用卷设备”真实解决办法
  20. 自顶向下红黑树java_红黑树之插入java实现

热门文章

  1. Python爬取你好李焕英豆瓣短评生成词云
  2. JAVA基础之变量(数据类型及其转换)
  3. netcore之托管程序
  4. Ubuntu 20.04 上安装 TeamViewer
  5. win10连接mysql服务器频繁断线_MySQL连接数过多导致服务无法正常运行
  6. 每日三道前端面试题--vue 第五弹
  7. ajax post常用请求头
  8. python tushare获取股票数据并可视化_使用Python获取股票数据Tushare
  9. mysql添加列默认null_MySQL-无法在列中插入NULL值,但是我指定了默认值吗?
  10. 任务58:19-尚硅谷-Java语言基础-String类型变量的使用