参考 https://ww2.mathworks.cn/help/matlab/random-number-generation.html

整理MATLAB生成随机数的一些函数及其用法,以供查阅。

函数目录

rand

均匀分布的随机数

randn

正态分布的随机数

randi

均匀分布的伪随机数

randperm

随机置换

rng

控制随机数生成

rand

语法

X = rand

X = rand(n)

X = rand(sz1,...,szN)

X = rand(sz)

X = rand(___,typename)

X = rand(___,'like',p)

说明

X = rand 返回一个在区间 (0,1) 内均匀分布的随机数。

X = rand(n) 返回一个 n×n 的随机数矩阵。

X = rand(sz1,...,szN) 返回由随机数组成的 sz1×...×szN 数组,其中 sz1,...,szN 指示每个维度的大小。例如:rand(3,4) 返回一个 3×4 的矩阵。

X = rand(sz) 返回由随机数组成的数组,其中大小向量 sz 指定 size(X)。例如:rand([3 4]) 返回一个 3×4 的矩阵。

X = rand(___,typename) 返回由 typename 数据类型的随机数组成的数组。typename 输入可以是 'single''double'。您可以使用上述语法中的任何输入参数。

X = rand(___,'like',p) 返回由 p 等随机数组成的数组;也就是与 p 同一对象类型。您可以指定 typename'like',但不能同时指定两者。

randn

语法

X = randn

X = randn(n)

X = randn(sz1,...,szN)

X = randn(sz)

X = randn(___,typename)

X = randn(___,'like',p)

说明

X = randn 返回一个从标准正态分布中得到的随机标量。

X = randn(n) 返回由正态分布的随机数组成的 n×n 矩阵。

X = randn(sz1,...,szN) 返回由随机数组成的 sz1×...×szN 数组,其中 sz1,...,szN 指示每个维度的大小。例如:randn(3,4) 返回一个 3×4 的矩阵。

X = randn(sz) 返回由随机数组成的数组,其中大小向量 sz 定义 size(X)。例如:randn([3 4]) 返回一个 3×4 的矩阵。

X = randn(___,typename) 返回由 typename 数据类型的随机数组成的数组。typename 输入可以是 'single''double'。您可以使用上述语法中的任何输入参数。

X = randn(___,'like',p) 返回由 p 等随机数组成的数组;也就是与 p 同一对象类型。您可以指定 typename'like',但不能同时指定两者。

randi

语法

X = randi(imax)

X = randi(imax,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],___)

说明

X = randi(imax) 返回一个介于 1imax 之间的伪随机整数标量。

X = randi(imax,n) 返回 n×n 矩阵,其中包含从区间 [1,imax] 的均匀离散分布中得到的伪随机整数。

X = randi(imax,sz1,...,szN) 返回 sz1×...×szN 数组,其中 sz1,...,szN 指示每个维度的大小。例如,randi(10,3,4) 返回一个由介于 1 和 10 之间的伪随机整数组成的 3×4 数组。

X = randi(imax,sz) 返回一个数组,其中大小向量 sz 定义 size(X)。例如,randi(10,[3,4]) 返回一个由介于 1 和 10 之间的伪随机整数组成的 3×4 数组。

X = randi(imax,classname) 返回一个伪随机整数,其中 classname 指定数据类型。classname 可以为 'single''double''int8''uint8''int16''uint16''int32''uint32'

X = randi(imax,n,classname) 返回数据类型为 classnamen×n 数组。

X = randi(imax,sz1,...,szN,classname) 返回数据类型为 classnamesz1×...×szN 数组。

X = randi(imax,sz,classname) 返回一个数组,其中大小向量 sz 定义 size(X)classname 定义 class(X)

X = randi(imax,'like',p) 返回一个类如 p 的伪随机整数;即,具有相同的数据类型(类)。

X = randi(imax,n,'like',p) 返回一个类如 pn×n 数组。

X = randi(imax,sz1,...,szN,'like',p) 返回一个类如 psz1×...×szN 数组。

X = randi(imax,sz,'like',p) 返回一个类如 p 的数组,其中大小向量 sz 定义 size(X)

X = randi([imin,imax],___) 使用以上任何语法返回一个数组,其中包含从区间 [imin,imax] 的均匀离散分布中得到的整数。

randperm

语法

p = randperm(n)
p = randperm(n,k)

说明

p = randperm(n) 返回行向量,其中包含从 1 到 n(包括二者)之间的整数随机置换。

p = randperm(n,k) 返回行向量,其中包含在 1 到 n(包括二者)之间随机选择的 k 个唯一整数。

rng

语法

rng(seed)

rng('shuffle')

rng(seed, generator)

rng('shuffle', generator)

rng('default')

scurr = rng

rng(s)

sprev = rng(...)

说明

注意:要将 rng 函数(而非 randrandn)与 'seed''state''twister' 输入结合使用,请参阅有关更换阻拦的 rand 和 randn 语法的文档。

rng(seed) 使用非负整数 seed 为随机数生成函数提供种子,以使 randrandirandn 生成可预测的数字序列。

rng('shuffle') 根据当前时间为随机数生成函数提供种子。这样,randrandirandn 会在您每次调用 rng 时生成不同的数字序列。

rng(seed, generator)rng('shuffle', generator) 另外指定 randrandirandn 使用的随机数生成函数的类型。generator 输入为以下项之一:

  • 'twister':Mersenne Twister

  • 'simdTwister':面向 SIMD 的快速 Mersenne Twister 算法

  • 'combRecursive':合并的多个递归

  • 'multFibonacci':乘法滞后 Fibonacci

  • 'v5uniform':传统 MATLAB® 5.0 均匀生成函数

  • 'v5normal':传统 MATLAB 5.0 正常生成函数

  • 'v4':传统 MATLAB 4.0 生成函数

rng('default')randrandirandn 使用的随机数生成函数的设置重置为其默认值。这样,会生成相同的随机数,就好像您重新启动了 MATLAB。默认设置是种子为 0 的 Mersenne Twister。

scurr = rng 返回 randrandirandn 使用的随机数生成函数的当前设置。这些设置将在包含字段 'Type'、'Seed' 和 'State' 的结构体 scurr 中返回。

rng(s)randrandirandn 使用的随机数生成函数的设置还原回之前用 s = rng 等命令捕获的值。

sprev = rng(...) 返回 randrandirandn 使用的随机数生成函数的以前设置,然后更改这些设置。

示例 1 - 检索和还原生成函数设置

将当前生成函数设置保存在 s 中:

s = rng;

调用 rand 以生成随机值向量:

x = rand(1,5)x =0.8147    0.9058    0.1270    0.9134    0.6324

通过调用 rng 还原原始生成函数设置。生成一组新的随机值并验证 xy 是否相等:

rng(s);
y = rand(1,5)y =0.8147    0.9058    0.1270    0.9134    0.6324

MATLAB之rand、randn、randi和randperm相关推荐

  1. Matlab之rand(), randn(), randi()函数的使用方法

    1.  rand()函数用于生成取值在(0~1)之间均匀分布的伪随机数. rand(n):生成n*n的0~1之间的满足均匀分布的伪随机矩阵: rand(m,n):生成m*n的伪随机数: rand(m, ...

  2. matlab函数randi,Matlab之rand(), randn(), randi()函数的使用方法

    1.  rand()函数用于生成取值在(0~1)之间均匀分布的伪随机数. rand(n):生成n*n的0~1之间的满足均匀分布的伪随机矩阵: rand(m,n):生成m*n的伪随机数: rand(m, ...

  3. 轮子——matlab中的随机数矩阵(rand randn randi 种子 normrnd randperm 对称)

    在matlab中进行仿真时,经常需要对真实数据添加随机数噪声.本文内容参考内容见文末,对其进行适当总结并不定期再补充. 文章目录 rand randn randi 设定种子1 设定种子2 normrn ...

  4. MATLAB中rand,randi,randn函数,及rand('state',0)和rand('seed',0)产生随机种子详解

    一.问题来源: 在学习matlab中看到书上有许多关于生成随机数的应用,y书上一开始会写一个rand('state',0),注释是为了方便验证,一开始并不是很理解,最近搜索网上文章等深入理解了下关于M ...

  5. matlab中randint函数用法,matlab中rand randn randint函数的区别

    matlab中rand函数是产生0到1的随机分布 matlab中randn函数是产生标准正态分布 randint是产生整数随机数,默认为0和1 %%%%%%%%%%%rand%%%%%%%%%%%%% ...

  6. 【matlab】随机函数生成随机排列:rand,randn,randi,randperm,randint

    1.rand() rand(n):生成0到1的均匀分布的n×n的随机数方阵 rand(m,n):生成0到1的m行n列的随机数矩阵 2.randn() randn(n)和randn(m,n)产生均值为0 ...

  7. MatLab中rand randi randn 三个函数的解析

    MatLab中rand randi randn 三个函数的解析 1.rand 概括:生成(0,1)之间的均匀分布的伪随机数 示例1: >>rand %什么参数也没有,生成一个(0,1)的数 ...

  8. matlab创建随机数(randn和rand和randi)

    randn和rand和randi rand生成均匀分布的伪随机数,分布在(0,1)之间,例如rand(m)生成m行m列的均匀分布的伪随机数,rand(m,n)生成m行n列的均匀分布的伪随机数,rand ...

  9. Matlab 没有 randint,Matlab_learning_4(rand randn randint函数 )

    ||matlab 中 rand 函数是产生0到1的随机分布 1>.RAND:Uniformly distributed random numbers. 标准化分布的随机数 2>.RAND( ...

最新文章

  1. Only POT texture can be compressed to PVRTC format
  2. 【Linux】23.ubuntu定时执行脚本/etc/crontab 和 定时任务不执行的解决办法
  3. TEA加密算法的C/C++实现
  4. 深度学习 点积的概念
  5. android Arrays.fill()的使用
  6. TCP/IP 笔记一
  7. ios模拟器的路径-打开沙盒路径
  8. Pytorch中的 torch.as_tensor() 和 torch.from_numpy() 的区别
  9. mybitsplus的idworker应java什么类型_MyBatisPlus学习整理(一)
  10. pcb结构链表_简单说说链表和一个应用实例
  11. 只安装python能干什么_你都用 Python 来做什么?
  12. 超融合平台安装oracle,超融合平台集成实施方案
  13. 构造函数和方法的区别
  14. python中库是什么意思_python库是什么意思
  15. 湄洲湾职业技术学院宿舍计算机,湄洲湾职业技术学院宿舍条件怎么样—宿舍图片内景...
  16. Excel VBA 巧用自定义函数进行数组去重
  17. cnn模型(cnn神经网络模型)
  18. 5D论文PMF及改进
  19. Js高级-函数的理解
  20. 直播源代码图片验证码

热门文章

  1. 快速学会FPGA的首选EDA工具介绍
  2. Windows 7 Pro Vl ENT(专业版vl及企业版)
  3. 读书:成为PPT高手—从思维开始重塑PPT的能力(4)
  4. python写小说阅读器_用python给自己DIY一款小说阅读器,如此看来,很简单!
  5. 我想做一个网站,怎么做
  6. CC65 开发FC/NES 游戏(三)使用摇杆
  7. 百度大脑 iOCR助力物流行业智能化管理案例
  8. 如何对分类构件进行标选颜色
  9. uva 109 SCUD Busters
  10. linux三星打印机驱动下载,三星SL-M3325ND打印机驱动下载