rand ----MATLAB (经典)

最近一直在学习matlab,我相信有一些同学已经发现,最近更新的关于matlab的内容比较多,

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

注意
不建议对 rand 函数使用 ‘seed’、‘state’ 和 ‘twister’ 输入。改用 rng 函数。有关详细信息,请参阅更换阻拦的 rand 和 randn 语法。

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

r = rand(5)
r =

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 =

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 个随机数。

随机整数
使用 randi 函数(而不是 rand)生成在 10 和 50 之间均匀分布的 5 个随机整数。

r = randi([10 50],1,5)
r =

43    47    15    47    35

随机复数
生成一个实部和虚部位于区间 (0,1) 内的随机复数。

a = rand + 1i*rand
a =
0.8147 + 0.9058i

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

s = rng;
r = rand(1,5)
r =

0.8147    0.9058    0.1270    0.9134    0.6324

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

rng(s);
r1 = rand(1,5)
r1 =

0.8147    0.9058    0.1270    0.9134    0.6324

始终使用 rng函数(而不是 rand 或 randn 函数)指定随机数生成函数的设置。有关详细信息,请参阅 更换阻拦的 rand 和 randn 语法。

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

X = rand([3,2,3])
X =
X(:,:,1) =

0.8147    0.9134
0.9058    0.6324
0.1270    0.0975

X(:,:,2) =

0.2785    0.9649
0.5469    0.1576
0.9575    0.9706

X(:,:,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®
ans =
‘single’
根据现有数组克隆大小
创建一个由正态分布的随机数组成并且大小与现有数组相同的矩阵。

A = [3 2; -2 1];
sz = size(A);
X = rand(sz)
X =

0.8147    0.1270
0.9058    0.9134

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

X = rand(size(A));
根据现有数组克隆大小和数据类型
创建一个由单精度随机数组成的 2×2 矩阵。

p = single([3 2; -2 1]);
创建一个与 p 具有相同大小和数据类型的由随机数组成的数组。

X = rand(size§,‘like’,p)
X = 2x2 single matrix

0.8147    0.1270
0.9058    0.9134

class(X)
ans =
‘single’
克隆分布式数组
如果您拥有 Parallel Computing Toolbox™,请创建一个由 single 基础数据类型的随机数组成的 1000×1000 分布式数组。对于 distributed 数据类型,‘like’ 语法除了克隆主数据类型,还克隆基础数据类型。

p = rand(1000,‘single’,‘distributed’);
Starting parallel pool (parpool) using the ‘local’ profile …
connected to 6 workers.
创建一个与 p 具有相同大小、主数据类型和基础数据类型的由随机数组成的数组。

X = rand(size§,‘like’,p);
class(X)
ans =

distributed
classUnderlying(X)
ans =
single
输入参数
全部折叠
n - 方阵的大小
整数值
方阵的大小,指定为整数值。

如果 n 为 0,则 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
复数支持: 是

提示
rand 生成的数字序列由均匀伪随机数生成函数的内部设置决定,该生成函数是 rand、randi 和 randn 的基础。您可以使用 rng 控制这一共享的随机数生成函数。

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值