MATLAB - 兼容数组



在 MATLAB 中,当数组共享相同的数据类型和大小,或者其中一个为标量时,这些数组被认为是兼容的。在 MATLAB 中执行逐元素运算或函数时,大小兼容的数组会自动扩展以与彼此的维度对齐。

MATLAB 兼容数组可以保存各种类型的数据,包括数字、字符串、逻辑值等。它们特别适合处理数值数据,这使得 MATLAB 成为科学和工程应用的强大工具。

以下是一些具有兼容大小的标量、向量和矩阵的示例。

行向量和列向量兼容性

行向量和列向量始终具有兼容的大小,即使它们的大小和长度不同。对这些向量进行算术运算会导致创建矩阵。

示例 1

假设您有一个 2x2 矩阵。此外,输出也是一个 2x2 矩阵。

matrix1 = [1, 2; 3, 4]
matrix2 = [5, 6; 7, 8]

在此示例中,matrix1 和 matrix2 是两个 2x2 矩阵。当您在 MATLAB 命令窗口中查看输出时,matrix1 和 matrix2 将如下所示显示。

>> matrix1 = [1, 2; 3, 4]
matrix2 = [5, 6; 7, 8]

matrix1 =

   1     2
   3     4

matrix2 =

   5     6
   7     8

>>

现在让我们对其执行加法,如下所示:

result = matrix1 + matrix2

现在,当您在 MATLAB 命令窗口中执行上述代码行时,输出如下:

>> result = matrix1 + matrix2

result =

   6     8
   10    12

>>

您可以看到,逐元素相加两个 2x2 矩阵的结果也是一个 2x2 矩阵,其中相应的元素相加。

示例 2

将标量添加到 2x2 矩阵。

matrix = [1, 2; 3, 4]
scalar = 5

在此示例中,matrix 是一个 2x2 矩阵,scalar 是一个标量值。当您在 MATLAB 命令窗口中检查它时,您将得到:

>> matrix = [1, 2; 3, 4]
scalar = 5

matrix =

   1     2
   3     4

scalar = 5

现在让我们将标量与矩阵相加,如下所示:

result = matrix + scalar

现在让我们在 MATLAB 的命令窗口中检查上述内容:

>> result = matrix + scalar

result =

   6     7
   8     9

>> 

您可以看到,原始矩阵的每个元素都增加了标量值,最终得到一个新的 2x2 矩阵。

示例 3

这里我们将使用 4x2 矩阵并将其添加到一个 4x1 列向量中。

matrix = [1, 2; 3, 4; 5, 6; 7, 8]
column_vector = [10; 20; 30; 40]

当您在 MATLAB 命令窗口中检查上述内容时,我们得到:

>> matrix = [1, 2; 3, 4; 5, 6; 7, 8]
column_vector = [10; 20; 30; 40]

matrix =

   1     2
   3     4
   5     6
   7     8

column_vector =

   10
   20
   30
   40

>>

这里矩阵是 4x2 矩阵,即它有 4 行 2 列。我们有列向量 4x1,即 4 行 1 列。

让我们将两者相加,我们将看到行保持不变,即输出将具有 4x2 的大小。

result = matrix + column_vector

现在,当您在 MATLAB 命令窗口中检查输出时,结果为:

>> result = matrix + column_vector

result =

   11    12
   23    24
   35    36
   47    48

>>

列向量中的每个元素都已添加到原始矩阵的相应列中,最终得到一个新的 4x2 矩阵。

示例 4

这里我们将看到将列向量与行向量相加的结果。

column_vector = [1; 2; 3; 4]
row_vector = [5, 6, 7, 8]

让我们在 MATLAB 命令窗口中检查输出:

>> column_vector = [1; 2; 3; 4]
row_vector = [5, 6, 7, 8]

column_vector =

   1
   2
   3
   4

row_vector =

   5     6     7     8

>>

列向量的大小为 4x1,行向量的大小为 1x4。

现在让我们看看将两者相加的结果。

result = column_vector + row_vector

MATLAB 命令窗口中的输出为:

>> result = column_vector + row_vector

result =

   6     7     8     9
   7     8     9    10
   8     9    10    11
   9    10    11    12

>>

结果矩阵的大小为 4x4。列向量中的每个元素都添加到行向量中相应的元素中,从而得到一个矩阵,其中每个元素都是输入向量中相应元素的总和。

示例 5

让我们也对行向量和列向量执行一个乘法和减法运算。

column_vector = [1; 2; 3; 4]
row_vector = [5, 6, 7, 8]
result = column_vector *  row_vector

当您在 MATLAB 命令窗口中执行相同操作时,输出为:

>> column_vector = [1; 2; 3; 4]
row_vector = [5, 6, 7, 8]
result = column_vector *  row_vector

column_vector =

   1
   2
   3
   4

row_vector =

   5     6     7     8

result =

   5     6     7     8
   10    12    14    16
   15    18    21    24
   20    24    28    32

>> 

现在让我们执行减法运算。

column_vector = [1; 2; 3; 4]
row_vector = [5, 6, 7, 8]
result = column_vector -  row_vector

当您在 MATLAB 命令窗口中执行相同操作时,输出为:

>> column_vector = [1; 2; 3; 4]
row_vector = [5, 6, 7, 8]
result = column_vector -  row_vector

column_vector =

   1
   2
   3
   4

row_vector =

   5     6     7     8

result =

   -4    -5    -6    -7
   -3    -4    -5    -6
   -2    -3    -4    -5
   -1    -2    -3    -4

>>
广告