matlab中的rand ,randn,和randi函数

这篇博客介绍了MATLAB中用于生成随机数的三个函数:rand用于生成均匀分布的浮点数,randn生成标准正态分布的随机数,randi则用于生成均匀分布的整数。通过调整参数,可以得到不同尺寸的矩阵。此外,使用rng函数可以设置随机数种子,实现随机数的重复生成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

rand(1,5)

ans =

    0.8147    0.9058    0.1270    0.9134    0.6324

● 若想得到一个3*3的方阵,则输入rand(3)即可。

>> rand(3)

ans =

    0.6852    0.0274    0.5587
    0.2045    0.6705    0.1404
    0.8781    0.4173    0.1981

 ● rand(size(A)) 返回一个和A有相同尺寸的随机矩阵。例如我们随便输入一个A矩阵,然后输入这个语句之后即可得到相同行列的一个随机矩阵。

>> A =  [1,2;3,4]

A =

     1     2
     3     4

>> rand(size(A))

ans =

    0.3456    0.5388
    0.3968    0.4192

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

 randn(1,5)

ans =

     -1.3077   -0.4336    0.3426    3.5784    2.7694

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


randi(iMax),在 [1,iMax] 生成均匀分布的伪随机整数

randi(5)

ans =

     3

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

randi(5,1,5)

ans =

     5     1     3     5     4

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

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

ans =

     5     2     5     5     3
     4     5     4     4     4

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 =

   -2.9443    1.4384    0.3252   -0.7549    1.3703


b =

   -1.7115   -0.1022   -0.2414    0.3192    0.3129


a_t =

   -2.9443    1.4384    0.3252   -0.7549    1.3703


b_t =

   -1.7115   -0.1022   -0.2414    0.3192    0.3129

也可以使用下面这种方法来循环生成同样的随机数 
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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值