概述
rank
函数几种常用的表达式:
X = rand()
X = rand 返回一个在区间 (0,1) 内均匀分布的随机数。
>> x = rand
x =
0.8147
X = rand(n)
X = rand(n) 返回一个 n×n 的随机数矩阵。
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
X = rand(sz1,…,szN)
X = rand(sz1,...,szN) 返回由随机数组成的 sz1×...×szN 数组,其中 sz1,...,szN 指示每个维度的大小。
例如:rand(3,4)
返回一个 3×4 的矩阵。
>> x = rand(3,4)
x =
0.9058 0.6324 0.5469 0.1576
0.1270 0.0975 0.9575 0.9706
0.9134 0.2785 0.9649 0.9572
指定区间的随机数:
一般来说,可以使用公式:
r = a + (b-a).*rand(N,1) 生成区间 (a,b) 内的 N 个随机数。
例:生成一个由区间 (-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
可以看到,上面我们生成的都是小数,而不是整数,那么我们也可以使用randi
(注意不是rand
)命令来生成指定区间的整数。
随机整数
例:使用 randi 函数(而不是 rand)生成在 10 和 50 之间均匀分布的 5 个随机整数。
r = randi([10 50],1,5)
r = 1×5
43 47 15 47 35
随机复数:
例:生成一个实部和虚部位于区间 (0,1) 内的随机复数。
a = rand + 1i*rand
a = 0.8147 + 0.9058i
重置随机数生成器
随机数生成器–类似
C
语言中的伪随机数种子,我们让计算机产生的随机数其实并不是那么的“随机”。
当初始的随机数种子是确定的时候,由它生成的一系列的数都是确定的,所以我们又将此称为伪随机数。
只有我们不断重置当前随机数种子的时候(C
语言中把时间当成随机数种子),我们由它产生的一系列数字才可能看起来是随机的。
既然这样我们也可以保存当前的随机数种子,这样做看起来虽然没有任何意义,但不如这样想,当我们想要的数据是通过某个随机数种子生存,下次我们还想要一模一样的数据的时候,我们就无从下手,唯一的做法是保存当前的随机数种子,下次继续调用我们保存的随机数种子即可。
例:保存随机数生成器的当前状态并创建一个由随机数组成的 1×5 向量。
s = rng;
r = rand(1,5)
r = 1×5
0.8147 0.9058 0.1270 0.9134 0.6324
``将随机数生成器的状态恢复为 s,然后创建一个由随机数组成的新 1×5 向量。值与之前相同。
```cpp
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(:,:,1) =
0.1869 0.6463
0.4898 0.7094
0.4456 0.7547
x(:,:,2) =
0.2760 0.1626
0.6797 0.1190
0.6551 0.4984
x(:,:,3) =
0.9597 0.2238
0.3404 0.7513
0.5853 0.2551
指定随机数的数据类型
例:创建一个由其元素为单精度值的随机数组成的 1×4 向量。
r = rand(1,4,'single')
r = 1x4 single row vector
0.8147 0.9058 0.1270 0.9134
class(r)
ans =
'single'
最后
以上就是忧伤书本为你收集整理的MATLAB--生成随机数与重置当前随机数种子X = rand()X = rand(n)X = rand(sz1,…,szN)指定区间的随机数:随机整数随机复数:重置随机数生成器三维数组指定随机数的数据类型的全部内容,希望文章能够帮你解决MATLAB--生成随机数与重置当前随机数种子X = rand()X = rand(n)X = rand(sz1,…,szN)指定区间的随机数:随机整数随机复数:重置随机数生成器三维数组指定随机数的数据类型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复