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