matlab中的rand ,randn,和randi函数

1. rand(m,n) 生成m行n列均匀分布在(0~1)之间的伪随机数。

rand(1,5)

ans =

    0.6797    0.6551    0.1626    0.1190    0.4984

2. randn (m,n) 生成m行n列标准正态分布的伪随机数(均值为0,方差为1)

 randn(1,5)

ans =

    1.5326   -0.7697    0.3714   -0.2256    1.1174

3. randi 生成均匀分布的伪随机整数

Pseudorandom integers from a uniform discrete distribution.
randi(iMax)在 [1,iMax] 生成均匀分布的伪随机整数

randi(5)

ans =

     3

randi(iMax,m,n)在 [1,iMax] 上生成 m X n 型随机矩阵

randi(5,1,5)

ans =

     4     5     5     3     1

randi([iMin,iMax],m,n) ,在 [iMin,iMax] 生成 m X n 型随机矩阵

 randi([2,5],1,5)

ans =

     2     3     5     3     5

4. 重复生成前一次的随机数

我们可以使用rng来保存上一次生成随机数的状态,也就是常说的随机数种子seed

s = rng;  % 保存a的随机数seed
a = randn(1,5)
k = rng;  % 保存b的随机数seed
b = randn(1,5)
rng(s)  % 调用a的随机数seed
a_t = randn(1,5)
rng(k)  % 调用b的随机数seed
b_t = randn(1,5)

结果如下:

a =
    0.8003   -1.5094    0.8759   -0.2428    0.1668

b =

   -1.9654   -1.2701    1.1752    2.0292   -0.2752

a_t =

    0.8003   -1.5094    0.8759   -0.2428    0.1668

b_t =

   -1.9654   -1.2701    1.1752    2.0292   -0.2752

也可以使用下面这种方法来循环生成同样的随机数
rng(seed)中的seed可以自行选取不同的数值,以此来控制不同的随机数状态

for i = 1:5
    rng(1)
    x = randn(1,5)
end

结果如下:

x =
   -0.6490    1.1812   -0.7585   -1.1096   -0.8456

x =
   -0.6490    1.1812   -0.7585   -1.1096   -0.8456

x =
   -0.6490    1.1812   -0.7585   -1.1096   -0.8456

x =
   -0.6490    1.1812   -0.7585   -1.1096   -0.8456

x =
   -0.6490    1.1812   -0.7585   -1.1096   -0.8456

可以看到生成的随机数都是一样的。

  • 20
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: rand: rand函数MATLAB的一个随机数生成函数,用于产生范围在0到1之间均匀分布的随机数。其语法为rand(),不带参数时返回一个随机数,可以通过设置参数来生成多个随机数。例如,rand(3,4)将返回一个3行4列的矩阵,其的元素为0到1之间的随机数。 randn: randn函数MATLAB的一个随机数生成函数,用于产生符合正态分布(均值为0,方差为1)的随机数。其语法与rand函数类似,randn()返回一个符合正态分布的随机数,可以通过设置参数来生成多个随机数。例如,randn(3,4)将返回一个3行4列的矩阵,其的元素为符合正态分布的随机数。 randi: randi函数MATLAB的一个随机数生成函数,用于产生整数随机数。其语法为randi(n)或randi([a,b]),n代表随机数的上限,生成的随机数范围为1到n;[a,b]代表随机数的范围,生成的随机数范围为a到b。例如,randi(10)将返回一个1到10之间的整数随机数,randi([5,10])将返回一个5到10之间的整数随机数。与randrandn函数类似,randi函数也可以通过设置参数来生成多个随机数。例如,randi([1,10],3,4)将返回一个3行4列的矩阵,其的元素为1到10之间的整数随机数。 ### 回答2: rand函数MATLAB的一个随机数生成函数,用于生成一个0到1之间的均匀分布的随机数。可以设置生成的随机数的维度和大小。例如,使用rand函数生成一个3x3的随机矩阵: x = rand(3,3) 运行结果可能如下: 0.8147 0.9134 0.2785 0.9058 0.6324 0.5469 0.1270 0.0975 0.9575 randn函数也是一个随机数生成函数,用于生成服从标准正态分布的随机数。它生成的随机数具有零均值和单位方差。和rand函数类似,可以设置生成随机数的大小和维度。例如,使用randn函数生成一个2x2的随机矩阵: y = randn(2,2) 运行结果可能如下: 0.5377 0.3188 1.8339 -0.3150 randi函数MATLAB的一个随机整数生成函数,用于生成指定范围内的随机整数。可以设置生成随机整数的大小、范围和维度。例如,使用randi函数生成一个1到10之间的3x1的随机整数向量: z = randi([1,10],3,1) 运行结果可能如下: 7 3 9 这三个函数MATLAB的应用非常广泛,可以用于生成随机数进行模拟、随机样本生成、数值计算或其他需要应用到随机数的情况。 ### 回答3: matlab函数rand产生一个0到1之间的随机数或多个0到1之间的随机数矩阵。它是基于均匀分布的随机数生成器。使用rand函数时,可以通过指定参数矩阵的大小来生成想要的随机数矩阵。例如,rand(2, 3)将生成一个2行3列的随机数矩阵。 matlab函数randn也是用来生成随机数,但是它是基于正态分布的。与rand函数不同,randn函数生成的随机数具有均值为0和方差为1的正态分布。 matlab函数randi用来生成随机整数。它可以生成介于两个给定整数之间的一个随机整数。例如,randi(10)将生成一个介于1到10之间的随机整数。同时,也可以指定生成整数的范围和大小。例如,randi([5, 15], 2, 3)将生成一个2行3列,取值范围在5到15之间的随机整数矩阵。 总之,这三个函数都是用来生成随机数的,但是它们所基于的分布不同。rand是基于均匀分布,randn是基于正态分布,randi则是生成随机整数。根据具体的需求,可以选择适合的函数来生成所需要的随机数。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值