均匀分布的随机数 - MATLAB rand - MathWorks 中国 (2024)

均匀分布的随机数

全页折叠

语法

X = rand

X = rand(n)

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

X = rand(sz)

X = rand(___,typename)

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

X = rand(s,___)

说明

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",但不能同时指定两者。

X = rand(s,___) 从随机数流 s 而不是默认全局流生成数字。要创建一个流,请使用 RandStream。您可以指定 s,后跟上述语法中的任何输入参量组合。

示例

全部折叠

由随机数组成的矩阵

打开实时脚本

生成一个由介于 0 和 1 之间的均匀分布的随机数组成的 5×5 矩阵。

r = rand(5)
r = 5×5 0.8147 0.0975 0.1576 0.1419 0.6557 0.9058 0.2785 0.9706 0.4218 0.0357 0.1270 0.5469 0.9572 0.9157 0.8491 0.9134 0.9575 0.4854 0.7922 0.9340 0.6324 0.9649 0.8003 0.9595 0.6787

指定区间内的随机数

打开实时脚本

生成一个由区间 (-5,5) 内均匀分布的数字组成的 10×1 列向量。

r = -5 + (5+5)*rand(10,1)
r = 10×1 3.1472 4.0579 -3.7301 4.1338 1.3236 -4.0246 -2.2150 0.4688 4.5751 4.6489

一般来说,可以使用公式 r = a + (b-a).*rand(N,1) 生成区间 (a,b) 内的 N 个随机数。

重置随机数生成器

打开实时脚本

保存随机数生成器的当前状态并创建一个由随机数组成的 1×5 向量。

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

将随机数生成器的状态恢复为 s,然后创建一个由随机数组成的新 1×5 向量。值与之前相同。

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

由随机数组成的三维数组

打开实时脚本

创建一个由随机数组成的 3×2×3 数组。

X = rand([3,2,3])
X = X(:,:,1) = 0.8147 0.9134 0.9058 0.6324 0.1270 0.0975X(:,:,2) = 0.2785 0.9649 0.5469 0.1576 0.9575 0.9706X(:,:,3) = 0.9572 0.1419 0.4854 0.4218 0.8003 0.9157

指定随机数的数据类型。

打开实时脚本

创建一个由其元素为单精度值的随机数组成的 1×4 向量。

r = rand(1,4,"single")
r = 1x4 single row vector 0.8147 0.9058 0.1270 0.9134
class(r)
ans = 'single'

现有数组定义的大小

打开实时脚本

创建一个由均匀分布的随机数组成并且大小与现有数组相同的矩阵。

A = [3 2; -2 1];sz = size(A);X = rand(sz)
X = 2×2 0.8147 0.1270 0.9058 0.9134

它是一种将前两行代码合并成一行的常见模式:

X = rand(size(A));

现有数组定义的大小和数据类型

打开实时脚本

创建一个由单精度随机数组成的 2×2 矩阵。

p = single([3 2; -2 1]);

创建一个与 p 具有相同大小和数据类型的由随机数组成的数组。

X = 2x2 single matrix 0.8147 0.1270 0.9058 0.9134
class(X)
ans = 'single'

随机复数

打开实时脚本

从一个方域上的均匀分布生成 10 个实部和虚部位于区间 (0,1) 内的随机复数。

a = rand(10,1,"like",1i)
a = 10×1 complex 0.8147 + 0.9058i 0.1270 + 0.9134i 0.6324 + 0.0975i 0.2785 + 0.5469i 0.9575 + 0.9649i 0.1576 + 0.9706i 0.9572 + 0.4854i 0.8003 + 0.1419i 0.4218 + 0.9157i 0.7922 + 0.9595i

输入参数

全部折叠

n方阵的大小
整数值

方阵的大小,指定为整数值。

  • 如果 n0,则 X 为一个空矩阵。

  • 如果 n 为负数,则将其视为 0

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

sz1,...,szN每个维度的大小(作为单独参量)
整数值

每个维度的大小,指定为包含整数值的单独参量。

  • 如果任一维度的大小为 0,则 X 为空数组。

  • 如果任何维度的大小为负值,则其将被视为 0

  • 对于第二个维度以上的维度,rand 忽略大小为 1 的尾部维度。例如,rand(3,1,1,1) 生成由随机数组成的 3×1 向量。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

sz每个维度的大小(作为行向量)
整数值

每个维度的大小,指定为由整数组成的行向量。此向量的每个元素指示对应维度的大小:

  • 如果任一维度的大小为 0,则 X 为空数组。

  • 如果任何维度的大小为负值,则其将被视为 0

  • 对于第二个维度以上的维度,rand 忽略大小为 1 的尾部维度。例如,rand([3 1 1 1]) 生成由随机数组成的 3×1 向量。

示例: sz = [2 3 4] 创建一个 2×3×4 数组。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

typename要创建的数据类型(类)
"double" (默认) | "single"

要创建的数据类型(类),指定为 "double""single" 或提供 rand 支持的其他类的名称。

示例: rand(5,"single")

p要创建的数组的原型
数值数组

要创建的数组的原型,指定为数值数组。

示例: rand(5,"like",p)

数据类型: single | double
复数支持:

s随机数流
RandStream 对象

随机数流,指定为 RandStream 对象。

示例: s = RandStream("dsfmt19937"); rand(s,[3 1])

提示

  • rand 生成的数字序列由均匀伪随机数生成器的内部设置决定,该生成器是 randrandirandn 的基础。您可以使用 rng 控制这一共享的随机数生成器。

扩展功能

版本历史记录

在 R2006a 之前推出

全部展开

指定非整数维度会导致错误。使用 floor 将非整数大小输入转换为整数。

另请参阅

randi | randn | rng | RandStream | sprand | sprandn | randperm

主题

  • 创建随机数数组
  • 生成可重复的随机数
  • 生成不同的随机数
  • 特定范围内的随机数
  • 球体内的随机数
  • 创建和控制随机数流
  • Class Support for Array-Creation Functions
  • 更换不推荐的 rand 和 randn 语法
  • 随机数为什么可在启动后重复出现?

MATLAB 命令

您点击的链接对应于以下 MATLAB 命令:

 

请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。

均匀分布的随机数 - MATLAB rand- MathWorks 中国 (1)

Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

You can also select a web site from the following list:

Americas

Europe

Asia Pacific

Contact your local office

均匀分布的随机数 - MATLAB rand
- MathWorks 中国 (2024)

References

Top Articles
Latest Posts
Article information

Author: Trent Wehner

Last Updated:

Views: 5927

Rating: 4.6 / 5 (76 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Trent Wehner

Birthday: 1993-03-14

Address: 872 Kevin Squares, New Codyville, AK 01785-0416

Phone: +18698800304764

Job: Senior Farming Developer

Hobby: Paintball, Calligraphy, Hunting, Flying disc, Lapidary, Rafting, Inline skating

Introduction: My name is Trent Wehner, I am a talented, brainy, zealous, light, funny, gleaming, attractive person who loves writing and wants to share my knowledge and understanding with you.