MATLAB 创建随机矩阵
本篇文章将讨论如何使用 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
你可以在函数中定义所需的分发名称。你可以使用多种类型的分布,例如:Beta
、Binomial
、Exponential
、Gamma
等等。查看此 链接 以了解有关 random
函数的更多详细信息。
相关文章
如何在 Matplotlib Pyplot 中显示网格
发布时间:2024/02/04 浏览次数:142 分类:Python
-
本文演示了如何在 Python Matplotlib 中在一个图上画一个网格。使用 grid()函数来绘制网格,并解释了如何改变网格颜色和线条类型。
在 Matplotlib 中的图中添加文字
发布时间:2024/02/04 浏览次数:180 分类:Python
-
本教程展示了我们如何使用 plt.text()方法在 Matplotlib 中为图或轴添加文字。
如何在 Matplotlib 中的多个线条之间进行填充
发布时间:2024/02/04 浏览次数:208 分类:Python
-
`fill_between()` 每次只能填充两条线之间的区域,但是我们可以选择一对行来填充多个线条之间的区域。
如何在 Matplotlib 中画一条任意线
发布时间:2024/02/04 浏览次数:166 分类:Python
-
本教程讲解了我们如何在 Matplotlib 中使用 matplotlib.pyplot.plot()、matplotlib.pyplot.vlines()、matplotlib.pyplot.hlines()方法和 matplotlib.collection.LineCollection 绘制任意线条。
Pandas 在 Matplotlib 柱状图上绘制多列图
发布时间:2024/02/04 浏览次数:189 分类:Python
-
在本教程中,我们将探讨如何使用 `DataFrame` 对象的 `plot()` 方法在柱状图上绘制多列。
如何在 Matplotlib 中绘制数据列表的直方图
发布时间:2024/02/04 浏览次数:178 分类:Python
-
本教程介绍了如何使用 plt.hist()方法从数据列表中绘制直方图。我们可以使用 plt.hist()方法从数据列表中绘制直方图。
Matplotlib 中的叠加条形图
发布时间:2024/02/04 浏览次数:182 分类:Python
-
本教程展示了如何使用 plt.bar()方法将某些数据集的条形图堆叠在另一个数据集上。我们在 Matplotlib 中使用 matplotlib.pyplot.bar()方法生成条形图。
在 Python Matplotlib 中生成反向色彩图
发布时间:2024/02/04 浏览次数:136 分类:Python
-
本教程解释了如何反转 Python Matplotlib Plot 的 Colormap。
设置 Matplotlib 网格间隔
发布时间:2024/02/04 浏览次数:250 分类:Python
-
本教程将介绍我们如何在 Matplotlib 绘图中设置网格间距,并对主要网格和次要网格应用不同的样式。