Arduino 二维数组

Ammar Ali 2023年10月12日
  1. Arduino 中的二维数组初始化
  2. 在 Arduino 中将数据存储到二维数组中
  3. 在 Arduino 中的特定位置替换二维数组中的值
  4. 在 Arduino 中二维数组中的特定位置检索值
  5. 用于 2D 数组的 Arduino MatrixMath
Arduino 二维数组

在本教程中,我们将讨论 Arduino 中的二维数组。我们将讨论如何初始化二维数组并使用它来存储数据。

Arduino 中的二维数组初始化

二维数组初始化与一维数组初始化非常相似。在二维数组中,我们必须定义行数和列数,然后使用一些数据对其进行初始化。例如,请参见下面的代码。

void setup() {
  int nRow = 2;
  int nCol = 4;
  int myArray[nRow][nCol] = {{1, 2, 3, 4}, {5, 6, 7, 8}};
}

在上面的代码中,nRow 是类型为 int 的变量,用于定义二维数组中 W 的行数。nCol 是类型为 int 的变量,用于定义二维数组中的列数,而 myArray 是类型为 int 的数组,用于存储给定的 int 值。你可以根据给定的数据更改所有这些值。请注意,你还可以在 Arduino 中定义其他数据类型数组,例如 float。另外,请注意,在数组初始化期间,必须定义行数和列数,或者至少要定义列数。

在 Arduino 中将数据存储到二维数组中

如果要将数据存储到二维数组中,则必须使用两个循环。要将数据存储在二维数组中,你必须到二维数组中的每个位置并将数据存储在那里。二维数组包含许多元素,因此手动在每个位置存储数据将非常耗时。为了节省时间,你可以使用两个循环去到每个位置并将给定数据存储在特定位置。例如,请参见下面的代码。

void setup() {
  int data = 0;
  int myArray[nRow][nCol];
  for (int nr = 0; nr < nRow; nr++) {
    for (int nc = 0; nc < nCol; nc++) {
      myArray[nr][nc] = data++;
    }
  }
}

在上面的代码中,我们使用两个循环去到二维数组中的每个位置,并将给定的数据存储在那里。在此示例中,数据是值为零的变量,但是你可以根据给定的数据更改其值。该方法将在 2d array 中的每个位置存储或替换数据。

在 Arduino 中的特定位置替换二维数组中的值

如果只想在一个位置存储或替换数据,则只需要对特定位置使用赋值运算符。例如,请参见下面的代码。

void setup() {
  int nRow = 2;
  int nCol = 4;
  int myArray[nRow][nCol] = {{1, 2, 3, 4}, {5, 6, 7, 8}};
  myArray[nRow][nCol] = 0;
}

在上面的代码中,我们将二维数组的 nRownCol 位置上的值替换为 0

在 Arduino 中二维数组中的特定位置检索值

如果要从二维数组中的特定位置获取值,则可以使用赋值运算符。例如,请参见下面的代码。

void setup() {
  int nRow = 2;
  int nCol = 4;
  int myArray[nRow][nCol] = {{1, 2, 3, 4}, {5, 6, 7, 8}};
  int myValue = myArray[nRow][nCol];
}

在上面的代码中,我们正在检索二维数组中 nRownCol 位置处的值,即 8

用于 2D 数组的 Arduino MatrixMath

你可以使用 Arduino 中提供的 MatrixMath 库进行许多操作,例如加法、减法、乘法、逆运算和打印二维数组。阅读改库的文档以获取更多信息,并在此处查看示例。

作者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相关文章 - Arduino Array