迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > MATLAB >

MATLAB 创建随机矩阵

作者:迹忆客 最近更新:2023/03/19 浏览次数:

本篇文章将讨论如何使用 rand()randi()randn()randperm()betarand()random() 函数生成或创建随机数在 MATLAB 中。

在 MATLAB 中使用 rand() 函数生成随机数

如果要生成均匀分布的随机数,可以使用 MATLAB 中的 rand() 函数,该函数生成 0 到 1 之间的随机数。还可以指定包含随机值的矩阵的大小,每个值都会在 0 和 1 之间,你可以通过将它们与缩放器相乘来根据你的要求进行缩放。例如,让我们使用 rand() 函数生成一个 2×2 随机值矩阵。请参考下面的代码。

rn = rand(2)

输出:

rn =

    0.2259    0.2277
    0.1707    0.4357

正如你在输出中看到的那样,生成了一个包含 0 到 1 之间随机值的 2×2 矩阵。如果要指定随机数的范围,则必须使用以下公式。

rn = a + (b-a).*rand(n,1)

在这个公式中,a 是下限,b 是上限,而 n 是随机数的长度。例如,让我们生成 2 到 8 范围内的十个随机数。请参考下面的代码。

a = 2;
b = 8;
n = 10;
rn = a + (b-a).*rand(n,1)

输出:

rn =

    7.5403
    4.5812
    3.1089
    7.4293
    7.8785
    4.6332
    2.6667
    3.5484
    4.4523
    5.5694

有 2 到 8 范围内的十个随机数。如果你只想要输出中的整数,你可以使用 round() 函数将这些随机数转换为整数,该函数将浮点数四舍五入到最接近的整数。你还可以使用 size() 函数的大小和数据类型的 like 属性从现有数组中克隆随机数的大小和数据类型。例如,让我们创建一个数组并根据该数组的大小和数据类型生成随机值。请参考下面的代码。

v = [2 3 1 5]
rn = rand(size(v),'like',v)

输出:

v =

     2     3     1     5


rn =

    0.4886    0.5785    0.2373    0.4588

数组和随机数的大小和数据类型相同。查看此链接以获取有关 rand() 函数的更多详细信息。

在 MATLAB 中使用 randi() 函数生成随机数

上述函数生成浮点随机数,但如果要生成随机整数,可以使用 MATLAB 中的 randi() 函数,该函数生成从 1 到指定整数的随机整数,你可以将其指定为 randi() 函数中的第一个参数。你还可以指定包含随机值的输出矩阵的大小作为第二个和第三个参数。例如,让我们生成一个 3×3 矩阵,其中包含从 1 到 15 的随机整数。请参考下面的代码。

rn = randi(15,3,3)

输出:

rn =

     6     1     8
    11    12    14
     3     8    10

该矩阵的大小为 3×3,其中包含 1 到 15 之间的随机整数。你还可以生成特定范围之间的随机整数,你只需将范围作为第一个参数传递在方括号中 randi() 函数。例如,让我们生成 -10 到 10 之间的 10 个随机数。请参考下面的代码。

rn = randi([-10,10],10,1)

输出:

rn =

     2
     8
     6
     2
    -7
    -5
     8
   -10
     0
    -7

在 -10 到 10 的范围内有十个随机数。你还可以通过在 randi() 函数中传递数据类型名称来定义整数的数据类型。你可以选择的数据类型有:'single', 'double', 'int8', 'uint8', 'int16', 'uint16', 'int32' , 或 'uint32'。你可以使用 size() 函数根据现有数组的大小定义随机数的大小,使用 like 属性定义数字数据类型。例如,让我们根据现有数组的大小和数值数据类型生成一个随机值矩阵。请参考下面的代码。

v = [1 2; 6 7]
rn = randi(7,size(v),'like',v)

输出:

v =

     1     2
     6     7


rn =

     6     1
     7     7

数组和随机数的大小和数据类型相同。查看此链接以获取有关 randi() 函数的更多详细信息。

在 MATLAB 中使用 randn() 函数生成随机数

如果要生成正态分布的随机数,可以使用 MATLAB 中的 randn() 函数。randn() 函数与 rand() 函数相同,只是分布类型不同。rand() 函数生成均匀分布的随机数,而 randn() 函数生成正态分布的随机数。你可以根据需要使用这些功能中的任何一个。查看此链接以获取有关 randn 函数的更多详细信息。

在 MATLAB 中使用 randperm() 函数生成随机数

如果要生成整数的随机排列,可以使用 MATLAB 中的 randperm() 函数。整数的随机排列将介于 1 到特定数字之间,你可以在 randperm() 函数中将其定义为第一个参数。你还可以将要生成的整数数量定义为函数中的第二个参数。例如,让我们生成 6 个唯一整数的随机排列。请参考下面的代码。

rn = randperm(10,5)

输出:

rn =

     2     3    10     8     7

所有整数都是唯一的,范围从 1 到 10。请注意,randperm() 函数与 randperm() 函数相同,不同之处在于 randperm() 生成唯一整数,而在 randi() 函数,整数可以重复。查看此链接以了解有关 randperm 功能的更多详细信息。

在 MATLAB 中使用 betarnd() 函数生成随机数

如果要从 beta 分布生成随机数,可以使用 MATLAB 中的 betarnd() 函数。此函数生成由第一个和第二个参数指定的随机整数:向量、矩阵或相同大小的数组。例如,让我们使用两个向量作为输入,根据 beta 分布生成一个 1×5 随机数矩阵。请参考下面的代码。

a = [1 2 3 4 5];
b = [9 8 7 6 5];
rn = betarnd(a,b)

输出:

rn =

    0.1234    0.1847    0.3334    0.2689    0.3678

你还可以通过在 betarnd() 函数的第三个和第四个参数中定义它来指定输出矩阵的大小。查看此链接以获取有关 betarnd() 函数的更多详细信息。

在 MATLAB 中使用 random() 函数生成随机数

如果要从指定的分布类型生成随机数,可以使用 MATLAB 中的 random() 函数。你必须将分布的名称定义为第一个参数,然后需要传递分布参数。例如,让我们使用 random() 函数使用 0 的 sigma 值和 1 的 mu 值生成正态分布的随机数。请参考下面的代码。

s = 0;
m = 1;
rn = random('Normal',s,m)

输出:

rn =

   -0.1649

你可以在函数中定义所需的分发名称。你可以使用多种类型的分布,例如:BetaBinomialExponentialGamma 等等。查看此 链接 以了解有关 random 函数的更多详细信息。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 MATLAB 中注释多行

发布时间:2023/04/23 浏览次数:111 分类:MATLAB

可以使用注释块方法或 MATLAB 编辑器在 MATLAB 中注释多行。

MATLAB 最大索引

发布时间:2023/04/23 浏览次数:192 分类:MATLAB

在本教程中,我们将讨论如何使用 MATLAB 中的 max() 函数从数组及其索引中查找最大值。

MATLAB 索引超出矩阵尺寸

发布时间:2023/04/23 浏览次数:103 分类:MATLAB

要解决索引超出矩阵索引的问题,请检查你要获取或替换数据的索引。

MATLAB 检查变量类型

发布时间:2023/04/23 浏览次数:92 分类:MATLAB

在本教程中,我们将讨论如何使用 MATLAB 中的 class() 和 whos 函数检查给定变量的类型。

MATLAB vs Octave

发布时间:2023/04/23 浏览次数:74 分类:MATLAB

我们可以说 Octave 是 MATLAB 的免费版本。

MATLAB MAT 文件

发布时间:2023/04/23 浏览次数:89 分类:MATLAB

可以使用 MAT 文件在 MATLAB 中存储和加载格式化的数据。

MATLAB asv 文件

发布时间:2023/04/23 浏览次数:180 分类:MATLAB

.asv 文件是 MATLAB 生成的自动保存文件,因此在计算机崩溃时你不会丢失数据。

MATLAB 三元运算符

发布时间:2023/04/23 浏览次数:130 分类:MATLAB

MATLAB 中没有三元运算符,因此你必须使用标准格式。

MATLAB & vs &&

发布时间:2023/04/23 浏览次数:134 分类:MATLAB

在 MATLAB 中,&是逻辑与运算符,&&也是表现出短路行为的逻辑运算符。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便