Arduino 2 次元配列
- Arduino での 2 次元配列の初期化
- Arduino の 2 次元配列にデータの保存
- Arduino の特定の位置にある 2 次元配列の値を置き換える
- Arduino の 2 次元配列の特定の位置から値を取得する
- 
          
            2 次元配列用の Arduino MatrixMathライブラリ
 
このチュートリアルでは、Arduino の 2 次元配列について説明します。2 次元配列を初期化し、それを使用してデータを格納する方法について説明します。
Arduino での 2 次元配列の初期化
2D 配列の初期化は、1D 配列の初期化と非常によく似ています。2 次元配列では、行と列の数を定義してから、いくつかのデータで初期化する必要があります。たとえば、以下のコードを参照してください。
void setup() {
  int nRow = 2;
  int nCol = 4;
  int myArray[nRow][nCol] = {{1, 2, 3, 4}, {5, 6, 7, 8}};
}
上記のコードでは、nRow はタイプ int の変数であり、2D 配列の行数を定義するために使用されます。nCol は 2D 配列の列数を定義するために使用されるタイプ int の変数であり、myArray は指定された int 値を格納するために使用されるタイプ int の配列です。与えられたデータに従って、これらすべての値を変更できます。Arduino で float のような他のデータ型配列を定義することもできることに注意してください。また、配列の初期化中に、行と列の数、または少なくとも列の数を定義する必要があることに注意してください。
Arduino の 2 次元配列にデータの保存
データを 2D 配列に格納する場合は、この目的のために 2つのループを使用する必要があります。2D 配列にデータを格納するには、2D 配列のすべての位置に移動し、そこにデータを格納する必要があります。2D 配列には多くの要素があるため、すべての位置に手動でデータを保存するには時間がかかります。時間を節約するために、2つのループを使用してすべての位置に移動し、特定の位置に特定のデータを格納できます。たとえば、以下のコードを参照してください。
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++;
    }
  }
}
上記のコードでは、2つのループを使用して、2D 配列のすべての位置に移動し、指定されたデータをそこに格納しています。この例では、データは値がゼロの変数ですが、指定されたデータに応じて値を変更できます。このメソッドは、2D 配列のすべての位置でデータを保存または置換します。
Arduino の特定の位置にある 2 次元配列の値を置き換える
1つの位置のみでデータを格納または置換する場合は、特定の位置に対して代入演算子を使用するだけで済みます。たとえば、以下のコードを参照してください。
void setup() {
  int nRow = 2;
  int nCol = 4;
  int myArray[nRow][nCol] = {{1, 2, 3, 4}, {5, 6, 7, 8}};
  myArray[nRow][nCol] = 0;
}
上記のコードでは、2D 配列の nRow と nCol の位置にある値を 0 に置き換えています。
Arduino の 2 次元配列の特定の位置から値を取得する
2D 配列の特定の位置から値を取得する場合は、代入演算子を使用できます。たとえば、以下のコードを参照してください。
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];
}
上記のコードでは、2D 配列の nRow と nCol の位置にある値 8 を取得しています。
2 次元配列用の Arduino MatrixMath ライブラリ
Arduino にある MatrixMath ライブラリは、2D 配列の加算、減算、乗算、逆数、出力などの多くの操作に使用できます。詳細については、ライブラリのドキュメントを読んでくださいとここの例を確認してください。
