matble中函数rand()(一)

本文介绍了MATLAB中rand函数的使用,包括如何重置随机数生成器以确保实验复现性,rand函数的基本形式,如生成不同尺寸的随机矩阵,以及如何指定数据类型。还提到了randi函数用于设定随机数区间,以及如何保存和恢复随机数生成器的状态。最后,文章展示了创建三维随机数组的方法以及查询数据类型的两种方式。

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

来源 matble中help rand 

其实都知道rand('twister',5489),就是重置matble随机生成数编译器,使在不同方法(算法)下有相同的初始化,同时又可以保证实验结果可以复现。


下面结合matble中的help rand来具体,rand函数      默认是生成(0,1)之间随机数的函数

rand()函数的具体形式有如下几种:

  • X = rand         返回一个随机数,该随机数在(0,1)之间 

  • X = rand(n)      返回一个nXn的矩阵,矩阵中的每个元素值都是(0,1)之间的随机数

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

  •    例如rand(2,3),返回的是2X3的随机矩阵,矩阵元素为(0,1)之间随机数;
  •    rand(2,3,2)则表示返回两个列表,分别是(2,3,1),(2,3,2) 每个列表都是2X3的随机矩阵,
  •    矩阵元素为(0,1)之间随机数;……

  • X = rand(sz)                 sz表示向量,当sz为一个数是  等价于 rand(n);……


  • X = rand(___,typename)  返回数据类型为TypeName  的随机数(0,1)数组, TypeName输入可以是“single”或“double”。
  •                          可以使用以前的语法中的任何输入参数类型。 
  • X = rand(___,'like',p)  返回像p这样数据类型的随机数(0,1)数组,即与p具有相同对象类型的数组。
  •                          可以指定typeName或“like”,但不能同时使用typyname与like。

下面通过实例来具体说明

>> rand(3)

ans =

    0.2769    0.8235    0.9502
    0.0462    0.6948    0.0344
    0.0971    0.3171    0.4387
>> rand(2,3)

ans =

    0.3816    0.7952    0.4898
    0.7655    0.1869    0.4456

randi()可以设定产生随机数的区间

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

    43    47    15    47    35

产生随机复数

>> a = rand + 1i*rand

a =

   0.6551 + 0.1626i
重置随机数生成器,

保存随机数生成器的当前状态,并创建1乘5的随机数向量。 (始终使用rng函数(而不是rand或randn函数)来指定随机数产生器的设置)

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

r =

    0.1190    0.4984    0.9597    0.3404    0.5853
>> rng(s);
r1 = rand(1,5)

r1 =

    0.1190    0.4984    0.9597    0.3404    0.5853

三维随机数组Create a 3-by-2-by-3 array of random numbers.

>> X = rand([3,2,3])

X(:,:,1) =

    0.2238    0.5060
    0.7513    0.6991
    0.2551    0.8909


X(:,:,2) =

    0.9593    0.1493
    0.5472    0.2575
    0.1386    0.8407


X(:,:,3) =

    0.2543    0.9293
    0.8143    0.3500
    0.2435    0.1966

X = rand(___,typename) 的使用

>> r = rand(1,4,'single')

r =

    0.2511    0.6160    0.4733    0.3517

查看上面r矩阵的数据类型使用class()函数  ///其实也可以用whos语句查询,不过whos查的是当前所有包含数据的类型,包含r

>> class(r)

ans =

single

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

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

p =

     3     2
    -2     1

矩阵p为single类型

>> X = rand(2,3,'like',p)

X =

    0.4505    0.2290    0.1524
    0.0838    0.9133    0.8258

>> Y = rand(3,'like',p)

Y =

    0.5383    0.4427    0.0046
    0.9961    0.1067    0.7749
    0.0782    0.9619    0.8173

>> Z=randi([1,10],2,3,'like',p)

Z =

     9     4     9
     1     3     5
>> class(X)

ans =

single

>> class(Y)

ans =

single

>> class(Z)

ans =

single



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值