在 MATLAB 中将向量附加到 3D 矩阵
本教程将讨论使用 MATLAB 中的 cat()
函数将向量附加到 3D 矩阵。
在 MATLAB 中将向量附加到 3D 矩阵
3D 矩阵或阵列不同于 2D 矩阵或阵列。在二维矩阵或数组中,我们有两个维度,其中第一个维度称为行,第二个维度称为列。
在 3D 矩阵或数组中,我们有 3 个维度,其中前两个维度与 2D 矩阵或数组相同,第三个维度称为页面或表格。一个简单的 3D 矩阵或数组如下所示。
在二维矩阵或数组中,每个元素都放置在特定位置或行列号上,我们可以使用其位置获取和替换元素。在 3D 矩阵或数组中,每个元素都放置在特定的位置、行、列和页码上,我们可以使用它的位置来获取和替换元素。
例如,3D 矩阵或数组中的第一个元素将被放置在位置 (1,1,1),这也显示在上图中。如果我们想在 3D 矩阵的末尾附加一个向量,向量的大小应该与 3D 矩阵中存在的每一页或第 3 维的大小相同。
例如,让我们创建一个具有 1 行、2 列和 2 页的 3D 矩阵或数组。请参阅下面的代码。
clc
clear
MyMatrix = ones(1,2,2)
输出:
MyMatrix(:,:,1) =
1 1
MyMatrix(:,:,2) =
1 1
MATLAB 显示关于第三维的 3D 数组或矩阵。在上面的示例中,我们有一个包含 2 个页面的 3D 矩阵,每个页面将有一个 1 行 2 列的 2D 矩阵,显示在输出中。
如果我们想从 3D 矩阵中获取一个元素,我们必须给出它的位置,比如行、列和页码。如果我们想在上述 3D 矩阵或数组的末尾追加或添加另一个向量,我们可以使用 cat()
函数,它根据给定的维度连接两个矩阵。
cat()
函数有三个输入参数,其中第一个参数是维数,第二个参数是 3D 矩阵,第三个参数是我们要附加到 3D 矩阵的向量或矩阵。在我们的例子中,我们想要在 3D 矩阵的末尾添加向量,这意味着我们想要在最后一页之后添加向量。
cat()
函数将在 3D 矩阵中创建另一个页面来存储给定的向量。
例如,让我们使用 cat()
函数在上述 3D 矩阵或数组的末尾创建并附加一个向量。请参阅下面的代码。
MyVector = [5 6];
MyMatrix = ones(1,2,2)
s = "After Adding Another Vector"
MyMatrix = cat(3, MyMatrix, MyVector)
输出:
MyMatrix(:,:,1) =
1 1
MyMatrix(:,:,2) =
1 1
s =
"After Adding Another Vector"
MyMatrix(:,:,1) =
1 1
MyMatrix(:,:,2) =
1 1
MyMatrix(:,:,3) =
5 6
正如我们在上面的输出中看到的,3D 矩阵在连接后有 3 页,最后一页包含输入向量。为了成功连接,我们在 cat()
函数中传递的维度大小和向量大小应该相同。
在上面的例子中,我们每页只有一行,所以我们没有遇到任何错误。如果我们有一个多于一行的 3D 矩阵,则第三维或页面的大小将与给定向量的大小不同。
为了解决这个问题,我们可以使用 zeros()
函数创建一个零向量,其大小与第三维或页面相同,然后我们可以将零矩阵的第一个数组替换为给定的向量.现在,给定的向量将变成一个带有额外零的矩阵,我们可以轻松地将其添加或附加到 3D 矩阵的末尾。
例如,让我们创建一个 2 行、2 列和 2 页的 3D 矩阵,然后使用上述方法添加给定的向量。请参阅下面的代码。
clc
clear
MyVector = [5 6];
MyMatrix = ones(2,2,2)
NewVector = zeros(2,2)
NewVector(1,:) = MyVector
s = "After Adding Another Vector"
MyMatrix = cat(3, MyMatrix, NewVector)
输出:
MyMatrix(:,:,1) =
1 1
1 1
MyMatrix(:,:,2) =
1 1
1 1
NewVector =
0 0
0 0
NewVector =
5 6
0 0
s =
"After Adding Another Vector"
MyMatrix(:,:,1) =
1 1
1 1
MyMatrix(:,:,2) =
1 1
1 1
MyMatrix(:,:,3) =
5 6
0 0
我们可以在上面的输出中看到向量被添加到 3D 矩阵中,但我们还必须添加零以使大小相等。如果我们想添加一个列向量,我们必须遵循上面讨论的相同方法。
如果 3D 矩阵在每一页上只有一列,并且它的大小等于输入列向量的大小,我们可以使用 cat()
函数轻松添加它们。如果 3D 矩阵有多于一列或大小不同,我们必须通过沿给定列向量添加零来使大小相等,然后我们可以使用我们在案例中使用的相同方法将其添加到 3D 矩阵添加行向量。
我们还可以替换 3D 矩阵的行、列或整页。例如,让我们使用 ones()
函数创建一个 3D 矩阵,并使用 append 运算符替换第一页的第一行。
请参阅下面的代码。
clc
clear
MyVector = [5 6];
MyMatrix = ones(2,2,2)
s = "After replacing row"
MyMatrix(1,:,1) = MyVector
输出:
MyMatrix(:,:,1) =
1 1
1 1
MyMatrix(:,:,2) =
1 1
1 1
s =
"After replacing row"
MyMatrix(:,:,1) =
5 6
1 1
MyMatrix(:,:,2) =
1 1
1 1
在上面的代码中,我们创建了一个 2 行、2 列和 2 页的 3D 矩阵。我们用另一个向量替换了第一页的第一行。
正如我们在上面的输出中看到的,输出上显示的文本之前和之后的输出是不同的,因为我们替换了第一页的第一行。被替换的行大小和新行应该相同。
我们也可以用另一个矩阵或数组替换整个页面或任何维度,但大小应该相同。
相关文章
如何在 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 绘图中设置网格间距,并对主要网格和次要网格应用不同的样式。