迹忆客 专注技术分享

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

MATLAB repelem() 函数

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

本教程将讨论使用 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 次以创建更大的表。

转载请发邮件至 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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便