如何用matlab生成随机数函数

1. MATLAB 函数 rand

产生在区间 (0, 1)的均匀随机数,它是平均分布在 (0,1)之间。一个称为seed的值则是用来控制产生随机数的次数。均匀随机数函数的语法为rand(n),rand(m,n),其结果分别产生一矩阵含n×n个随机数和一矩阵含m×n的随机数。注意每次产生随机数的值都不会一样,这些值代表的是随机且不可预期的,这正是我们用随机数的目的。我们可利用这些随机数代入算式中,来表示某段讯号的不规则振幅或是某个事件出现的机率。均匀随机数其值平均的分布于一区间的特性可以从其统计密度函数(probabilitydensity function, PDF)说明。从其PDF分布类似长条图的分布,可以看出其每一个随机数值出现的机率皆相同,所以它被称为均匀随机数。

见以下的例子:

>> rand(1,6) % 第一次使用随机数产生器

ans =

0.2190 0.0470 0.6789 0.6793 0.9347 0.3835

>>hist(ans) % 看看长条图的长相

>>plot(ans) % 比较上个图与这个图有何差异?何者能代表不规则数据的分布

>> rand(1,6) % 第二次使用随机数产生器,注意每次产生的随机数值皆不同

ans =

0.5194 0.8310 0.0346 0.0535 0.5297 0.6711

因为每次随机数产生的值皆不同,如果因为验证算式需要确定所使用的随机数值是相同的,可以利用seed这个选项,用以设定使用计算随机数产生器的起始值,其语法为rand(‘seed’,n),n的规定是。其中n=0有特别意义是使用第一次产生随机数值的起始值(=931316785),其它的n值即是所使用起始值。如果使用相同的起始值,则随机数值会一样,因为随机数的计算是依据起始值。请看以下的例子:

>> rand(‘seed’,0) % 将随机数值的起始值重设,相当于是第一次产生随机数值

>>rand(‘seed’) % 显示现在使用的 seed 值=931316785

ans =

931316785

>> rand(2,3) % 注意随机数值的上下限介于 [0,1] 区间

ans =

0.2190 0.6789 0.9347

0.0470 0.6793 0.3835

>> rand(‘seed’) % 显示再产生随机数值所用的seed=412659990

ans =

412659990

>> rand(‘seed’,0)

>> rand(1,6)

ans =

0.2190 0.0470 0.6789 0.6793 0.9347 0.3835

>> rand(‘seed’,100) % 设定随机数值的起始值=100

>> rand(‘seed’)

ans =

100

>> rand(2,5)

ans =

0.2909 0.0395 0.3671 0.5968 0.9253

0.0484 0.5046 0.9235 0.8085 0.3628

如果需要产生随机数值不是介于[0,1]区间,可以采用以下步骤将随机数值从[0,1]区间转换到其它区间。假设要得到一组随机数值是介于[2,4]区间,我们先产生一组随机数介于[0,1]区间 ,再将其值乘以2,因为2等于区间上下限的差值(4-2)。接著再加上下限值(2),即可得到随机数值是介于[2,4]区间。例如区间为[a,b],a为下限值,b为上限值。则算式如下

x=(b-a)*r + a,

其中x代表转换后的随机数值的阵列。请看下列示范:

>>data_1 = 2*rand(1,500)+2; %原随机数值有500个

>>plot(data_1) %这个图是否看来眼熟?

>>axis([1 500 0 6]) %调整横轴/纵轴上下限

>>hist(data_1) %看看其长条图

2. MATLAB 函数randn

产生常态随机数,它是以高斯分布在随机数出现的上下限区间。常态随机数其值分布于一区间的特性可以从其统计密度函数(PDF)说明。从其 PDF分布可以看出其每一个随机数值出现的机率皆不相同,靠近中间的随机数值出现的机率比起两端的值要高,这是一般不规则现象较可能出现的情形,所以它被称为常态随机数。由于常态随机数并非以上下限来定义,它是用数据的平均值和方差定义之。因此在产生一常态随机数时,需设定平均值和方差的大小。randn(n)和randn(n,m)是分别产生一矩阵含n×n个随机数和一矩阵含m×n的常态随机数,其平均值为0方差为1。

见以下的例子:

>> x=-2.9:0.2:2.9; % 这个例子用到 hist 函数来画出二种随机数的分布图

>> y=randn(1,5000);

>> hist(y,x)

>> title(‘Histogram of Normal Random Data’)

>> y1=rand(1,5000);

>> hist(y1,x)

>> title(‘Histogram of Uniform Random Data’)

如果需要产生常态随机数值的平均值和方差并非0和1,可以采用以下步骤将平均值和方差做转换。假设要得到一组常态随机数值的平均值为b和方差为a,我们先产生一组随机数r,再将其值乘以方差a。接著再加平均值b。算式如下:

x=a*r + b

其中x代表转换后的随机数值的阵列。请看下列示范:

>>data_2 = randn(1,500)+3 %原随机数值有500个

>>plot(data_2) %这个图是否看来眼熟?

>>axis([1 500 0 6])

>>hist(data_2) %看看其长条图

3.randperm(n)

产生一个1到n之间自然数的随机排列

4.randint(m,n,[1 N])

生成m×n的在1到N之间的随机整数矩阵,其效果与randint(m,n,N+1)相同。

matlab生成随机数函数

rand(n):生成0到1之间的n阶随机数方阵 rand(m,n):生成0到1之间的m×n的随机数矩阵 (现成的函数)

另外:

Matlab随机数生成函数

betarnd 贝塔分布的随机数生成器

binornd 二项分布的随机数生成器

chi2rnd 卡方分布的随机数生成器

exprnd 指数分布的随机数生成器

frnd f分布的随机数生成器

gamrnd 伽玛分布的随机数生成器

geornd 几何分布的随机数生成器

hygernd 超几何分布的随机数生成器

lognrnd 对数正态分布的随机数生成器

nbinrnd 负二项分布的随机数生成器

ncfrnd 非中心f分布的随机数生成器

nctrnd 非中心t分布的随机数生成器

ncx2rnd 非中心卡方分布的随机数生成器

normrnd 正态(高斯)分布的随机数生成器

poissrnd 泊松分布的随机数生成器

raylrnd 瑞利分布的随机数生成器

trnd 学生氏t分布的随机数生成器

unidrnd 离散均匀分布的随机数生成器

unifrnd 连续均匀分布的随机数生成器

weibrnd 威布尔分布的随机数生成器

喜欢 (1)or分享 (0)

matlab seed函数_如何用matlab生成随机数函数_matlab随机数生成函数相关推荐

  1. matlab cat函数_如何用Matlab编写贪吃蛇游戏?(持续更新)

    今后我们实验室的研究重点将会聚焦在"基于游戏的测评"和"教育游戏化"这两个主题上,因此很有必要研究实现"爆款"游戏的一些基本的技术方法.这篇 ...

  2. matlab 曲线拐点_如何用matlab把一组数据模拟一个函数图像?并找出曲线拐点?...

    MATLAB概论 MATLAB是世界流行的优秀科技应用软件之一.具有功能强大(数值计算.符号计算.图形生成.文本处理及多种专业工具箱).界面友好,可二次开发等特点.在国内外,已有许多高等院校将其列为本 ...

  3. matlab画转体_如何用MATLAB画五角星围绕其一对称轴旋转的旋转体?

    clear all; clc; close all; %% 画五角星 A = ones(2,5); A(:,1) = [0 1]'; theta = 2*2*pi/5; for i=2:5 A(:,i ...

  4. 数据库创建函数_达梦数据库创建UUID函数

    数据库创建函数_达梦数据库创建UUID函数 接触达梦数据库有一段时间了,整理了一些资料,今天分享一下达梦数据UUID自定义函数 UUID函数定义 很多数据库都有提供UUID函数,可是接触达梦数据库后, ...

  5. matlab如何创建callback函数_如何学好MATLAB GUI

    差不多有一个月的时间没有写一些总结了,所以今天打算聊聊之前写的几篇文章. 8月可以说是我的GUI月,因为发的4篇文章,全是关于GUI的. 这可能就是我写文章的一个陋习,写起GUI就是连着好几篇,写爬虫 ...

  6. matlab hist函数_算法工匠MATLAB专训营:Matlab绘图,小试牛刀

    作者 | 蔡老师 仿真秀专栏作者 首发 | 仿真秀平台 导读:正文之前,我在此详细说明一下,因为本文包含的程序太难得,网上肯定找不到这样的程序.随着讲课的越来越深入,我给出的程序会越来越实用,接近于实 ...

  7. matlab三元函数泰勒展开,如何用matlab绘制三元函数f(x,y,z)=x^2 y^3 z^4在[-1,1]x[-2,2]x[-3,3] 上的各...

    问题描述: 如何用matlab绘制三元函数f(x,y,z)=x^2 y^3 z^4在[-1,1]x[-2,2]x[-3,3] 上的各种切片图. 还有怎么绘制f(x,y,t)=10*exp(1-t)*s ...

  8. matlab hist函数_超全Matlab绘图方法整理(建议收藏!)

    你好,我是goldsunC 让我们一起进步吧! 使用Matlab绘图 图像是结果的一种可视化表现,它能直观的体现你的结果,并且能体现你获得结果的准确性,在当前的大数据时代,在做数据分析的时候,将其可视 ...

  9. matlab数组平方的计算自定义函数_从零开始的matlab学习笔记——(38)简单数论计算函数:取整,gcd,lcm,质数,全排列...

    matlab应用--求极限,求导,求积分,解方程,概率统计,函数绘图,三维图像,拟合函数,动态图,傅里叶变换,随机数,优化问题....更多内容尽在个人专栏:matlab学习 翻了翻优化工具箱,发现内容 ...

最新文章

  1. 序列化和反序列化的几种方式(DataContractSerializer)(二)
  2. oracle怎么关闭约束,Oracle约束enable/disablenovalidate
  3. 文件粉碎机c语言代码,Life——文件粉碎机源码
  4. Python 之父 Guido van Rossum 退休失败,正式加入微软搞开源!
  5. day9-mysql集群
  6. 三种最常用的期货交易系统,99%的人都不知道
  7. USB网卡收发数据分析
  8. 作用域链与原型链的区别
  9. C语言小案例_小程序学习(三)
  10. HC-05主从模式蓝牙配对说明v1.0
  11. 總結——關於2017 10 30測試的分析總結
  12. 新手学习UI设计好学吗?难吗?
  13. Dew Lab Studio 2020 VCL软件包,很好的RAD(快速软件开发)工具
  14. 项目开发总结报告 模板
  15. 现代永磁同步电机控制原理及matlab仿真_基于Matlab的PMSM模型初探
  16. linux怎样在根目录下创建文件夹
  17. Vue-----Vue本地应用篇(2)
  18. 图的逆拓扑排序(回路识别)
  19. js正则表达式验证金额
  20. 华文慕课北大计算机组成原理陆俊林第三章课后习题解析

热门文章

  1. python教程400集笔记,Python学习中的笔记--集合相关,python笔记--集合
  2. android viewpager 详解,详解Android App中ViewPager使用PagerAdapter的方法
  3. c语言学习-定义一个整型数组a[10],将数组a[10]中的10个元素按逆序重新存放
  4. 容器入门(6) - 获取访问Docker Registry的公钥证书
  5. VG SketchPad编辑器——可嵌入的jQuery插件
  6. Vue学习笔记(五)—— 状态管理Vuex
  7. python 列表 元祖 字典 集合_python中列表、元祖、字典和集合
  8. linux VNC白屏,VNC使用及其常见问题解决方法
  9. android 字体像素转换工具类_android px,dp,sp大小转换工具
  10. python如何创建一个列表_使用python中的format()创建一个列表(make a list using format() in python)...