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 次以创建更大的表。
相关文章
MATLAB 检查变量类型
发布时间:2023/04/23 浏览次数:92 分类:MATLAB
-
在本教程中,我们将讨论如何使用 MATLAB 中的 class() 和 whos 函数检查给定变量的类型。