MATLAB repelem() 函数
本教程将讨论使用 MATLAB 的 repelem()
函数重复复制数组元素。
MATLAB repelem() 函数
手动创建包含许多元素的数组会花费大量时间,因为我们必须编写每个数组元素。 但是我们可以使用循环和Matlab的一些内置函数在短时间内创建一个包含很多元素的数组。
repelem()
函数还用于通过重复标量或向量在短时间内创建大量元素的数组。 repelem()
函数用于重复数组元素的副本,并根据重复的元素创建新数组或矩阵。
repelem()
函数有两种语法,第一种语法如下所示。
output = repelem(v,n)
第一种语法将返回向量或标量 v 的重复元素的向量。如果 n 是标量,则输入向量 v 值将重复 n 次,并且输出向量的长度将等于输入向量的长度 乘以n。
如果 n 是一个向量,向量 v 的每个元素将根据向量 n 的相应元素重复,并且向量 n 应该与输入向量 v 具有相同的长度。输出向量的长度将等于向量的总和 n 个元素。
换句话说,向量 v 的第一个元素将根据向量 n 的第一个元素重复,依此类推。 例如,让我们创建一个向量并重复它以创建两个新向量。
请参阅下面的代码。
clc
clear
X = [1 2 3]
Y = repelem(X,2)
Z = repelem(X,[1 2 3])
输出:
X =
1 2 3
Y =
1 1 2 2 3 3
Z =
1 2 2 3 3 3
在上面的代码中,我们将向量 X 的每个元素重复两次以创建新向量 Y。我们将向量 X 的第一个元素重复一次,将向量 X 的第二个元素重复两次,将第三个元素重复三次以创建 新向量 Z。
我们可以在输出中看到向量 X 的每个元素被重复两次以创建向量 Y,而向量 Z 表明它是根据第二个 repelem()
函数中定义为第二个参数的向量创建的。
repelem()
函数的第二种语法如下所示:
output = repelem(m,r1,...,rN)
第二种语法用于重复矩阵的元素以创建新的 2D 或 3D 矩阵和数组。 第一个参数 m 是输入矩阵或数组,可以是任意维度。
所有其他参数用于设置块大小,块大小用于重复输入矩阵或数组的每个元素,它可以是标量或与输入矩阵的特定维度长度相同的向量。 例如,如果我们将 2 和 3 作为第二个和第三个参数传递给 repelem() 函数,它将通过重复输入矩阵的每个元素并将其放入新矩阵来创建一个 2×3 矩阵。
换句话说,输入矩阵的每个元素将在行或第一维中重复两次,在列或第二维中重复 3 次以创建新的数组或矩阵。 如果我们传递第四个参数,输入矩阵的每个元素也将在三维中重复以创建多维数组或矩阵。
例如,让我们创建一个 2×2 矩阵并重复其元素以创建一个新矩阵。 请参阅下面的代码。
clc
clear
X = magic(2)
Y = repelem(X,2,2)
输出:
X =
1 3
4 2
Y =
1 1 3 3
1 1 3 3
4 4 2 2
4 4 2 2
在上面的代码中,我们将输入矩阵的每个元素在第一维或行维中重复两次,在第二维或列维中重复两次以创建新矩阵。 输出矩阵的大小将等于输入向量的特定维度与块大小的乘积。
在上面的示例中,输出矩阵的大小将为 4×4,因为输入矩阵大小为 2×2,并且块大小也为 2×2。 输出矩阵的维度将等于块大小的维度,如上例所示,块有两个维度,输出矩阵也有两个维度。
如果我们不想在特定维度中重复某个元素,我们可以将一个作为该维度的值传递。 例如,如果我们不想重复第一个或行维度中的元素以便行数应该相同,我们可以在上面的代码中将一个作为第二个参数传递。
在上面的示例中,每个元素将在两个维度上重复 2 次。 但是如果我们想根据我们的要求重复每个元素,我们可以使用一个与特定维度长度相同的向量,它会定义特定元素将被重复的次数。
例如,让我们重复上面的例子,根据一个向量只重复列值。 请参阅下面的代码。
clc
clear
X = magic(2)
Y = repelem(X,1,[3 2])
输出:
X =
1 3
4 2
Y =
1 1 1 3 3
4 4 4 2 2
在上面的代码中,我们将输入矩阵的第一列重复 3 次,将第二列重复 2 次以创建一个新矩阵 Y。我们可以在上面的输出中看到输出矩阵的行数与 输入矩阵的行数,因为我们没有重复行,而列数增加了,因为我们将第一列重复了三次,第二列重复了两次。
我们可以对任何维度进行此操作。 我们还可以使用 repelem()
函数通过在特定维度上重复其值来从小表创建大表。
例如,让我们使用 table()
函数创建一个表,然后通过重复第一个表的值来创建另一个大表。 请参阅下面的代码。
clc
clear
T_1 = table([19; 16],[60; 53],'VariableNames',{'Age' 'Height'})
T_2 = repelem(T_1, 2,2)
输出:
T_1 =
2×2 table
Age Height
___ ______
19 60
16 53
T_2 =
4×4 table
Age Age_1 Height Height_1
___ _____ ______ ________
19 19 60 60
19 19 60 60
16 16 53 53
16 16 53 53
在上面的代码中,我们重复了行和列维度 2 次以创建更大的表。
相关文章
如何在 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 绘图中设置网格间距,并对主要网格和次要网格应用不同的样式。