MATLAB - 数组索引



数组寻址是指访问数组的元素。Matlab 提供了许多访问数组的方法。我们可以使用索引、切片和逻辑索引从数组中获取元素。

数组索引

在 Matlab 中,变量是一个包含许多数字的数组。要访问数组中的任何元素,您必须使用索引。

为了更详细地了解,让我们创建一个大小为 4x3 的矩阵。

示例

A = [1 2 3; 4 5 6; 7 8 9; 10 11 12]

在 Matlab 中执行后,我们将得到以下输出:

A =

   1     2     3
   4     5     6
   7     8     9
   10    11    12 

可以获取数组中的元素:

  • 通过给出行和列下标
  • 通过给出单个下标。
  • 通过使用冒号运算符以及起始:结束范围。

通过给出行和列下标

要从数组中获取元素,请给出行号和列号。

例如,我想要元素 8,它位于第 3 行和第 2 列:

A = [1 2 3; 4 5 6; 7 8 9; 10 11 12]
A(3,2)

在 Matlab 中执行时,您将得到:

A =

   1     2     3
   4     5     6
   7     8     9
   10    11    12

ans = 8

通过给出单个下标

因此,从下面的矩阵中,您想要获取元素 5,您可以通过给出单个下标来实现。

A =

   1     2     3
   4     5     6
   7     8     9
   10    11    12

获取 5 的下标是 6。

因此,A(6) 将为您提供元素 5。让我们在 Matlab 中检查一下。

A = [1 2 3; 4 5 6; 7 8 9; 10 11 12]
A(6)
A =

   1     2     3
   4     5     6
   7     8     9
   10    11    12

ans = 5

通过使用冒号运算符以及起始:结束范围

冒号是 Matlab 中最常用的运算符,表示为 (:)。它用于获取下标数组、向量,也用于 for 循环。

以下是在使用冒号 (:) 从矩阵中获取元素时将获得的不同结果。

语法 描述
A(:, nth) 这将显示矩阵 A 的第 nth 列。
A(m, : ) 这将显示矩阵 A 的第 m 行。
A(:) 这将为您提供矩阵 A 中的所有元素,形成一个单列向量。
A(i:j) 这将为您提供一个向量数组,其中元素如下所示 [A(i), A(i+1) …. Aj]
A(:, i:j) 这将为您提供第一维的所有元素,第二维将基于 i:j 值。

让我们检查给定矩阵 A 的一些示例。

示例 1

此示例将从 4x3 矩阵中获取第三列,如下所示:

A = [1 2 3; 4 5 6; 7 8 9; 10 11 12]
A(:, 3)

在 Matlab 中执行后,输出为:

A =

   1     2     3
   4     5     6
   7     8     9
   10    11    12

ans =

    3
    6
    9
   12

示例 2

此示例将获取矩阵 A 的第一行,如下所示:

A = [1 2 3; 4 5 6; 7 8 9; 10 11 12]
A(1,:)

在 Matlab 中执行后,输出如下:

A =
    1     2     3
    4     5     6
    7     8     9
   10    11    12
   
ans =

   1     2     3

示例 3

让我们将矩阵 A 中的所有元素显示为一个单列向量,如下所示。

A = [1 2 3; 4 5 6; 7 8 9; 10 11 12]
A(:)

执行后的输出如下:

A =
    1     2     3
    4     5     6
    7     8     9
   10    11    12

ans =
    1
    4
    7
   10
    2
    5
    8
   11
    3
    6
    9
   12

示例 4

让我们按顺序从给定范围内获取矩阵中的元素,例如 i、i+1 等。假设您想要从 2 到 8 的元素,A(2:8) 将返回一个行向量,如下所示。

A = [1 2 3; 4 5 6; 7 8 9; 10 11 12]
A(2:8)

执行后的输出如下:

A =
    1     2     3
    4     5     6
    7     8     9
   10    11    12

ans =

   4     7    10     2     5     8    11

示例 5

让我们尝试另一个示例,其中我们需要所有行的元素以及第二维中范围内的元素。

A = [1 2 3; 4 5 6; 7 8 9; 10 11 12]
A(:, 2:3)

执行后的输出如下:

A =

    1     2     3
    4     5     6
    7     8     9
   10    11    12

ans =

    2     3
    5     6
    8     9
   11    12
广告