NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

Arduino IDE(2次元配列の使い方)

■2次元配列
 2次元配列※1とは、表の様なデータを扱うときに便利な変数です。

 2次元の配列名※2を宣言する事で、行と列を変数とした配列の要素※3に連続してアクセスし、データの読み書きが簡単に行えるようになります。 
 以下に記入例とそのパラメータ、また表との対応を示します。

○記入例
int a[2][2];
 
パラメータ
Type Array[Index1][Index2]
Type :要素の型
Array  :配列名
Index1:行数
Index2:列数
表1:2次元配列と行列の対応
 a[i][j]  j=0(列)  j=1(列)  j=2(列)
 i=0(行)  a[0][0]  a[0][1]  a[0][2]
 i=1(行)  a[1][0]  a[1][1]  a[1][2]
 i=2(行)  a[2][0]  a[2][1]  a[2][2]
 
以下補足です

※1:配列(array)とは、同じ型のデータをメモリ上に連続して並べたかたまりです。
※2:配列名とは、その配列全体を指すための名前の事。
※3:配列の要素(element)とは、配列中に連続した一つ一つ※4のデータの事。
※4:i 番目の要素は 配列名[i] と書き、変数 iの事を配列の添字(index)と呼ぶ。
 注意点として、違う型のデータを混在して配列する事は出来ません。

 

■使用例
 Arduino IDEで使用する2次元配列の使用例は図1の通りです。
 試しにこのプログラムをArduino UNOで実行すると、最初に表2に示した行列のサンプルデータと同じものがb[3][4]に保存されます。

表2:行列サンプルデータ
 1
 5
 9 10  11  12 
 
 次にb[3][4]に保存したデータを全てa[3][4]にコピーします。
 最後にa[3][4]に保存した3行×4列=12要素のデータをPCのシリアルモニター上に図2の通り表示します。
void setup() {
  Serial.begin(9600);
}

void loop() {
  int a[3][4];
  int b[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
  int i, j;
  for (i = 0; i < 3; i++) {
    for (j = 0; j < 4; j++) {
      a[i][j] = b[i][j];
    }
  }
  for (i = 0; i < 3; i++) {
    for (j = 0; j < 4; j++) {
      Serial.print("a[");
      Serial.print(i);
      Serial.print("][");
      Serial.print(j);
      Serial.print("]=");
      Serial.println(a[i][j]);
      delay(1000);
    }
  }
}
イメージ 1
図1:プログラム例

 

 イメージ 1
図2:プログラム実行結果

 

■多次元配列
「int a[i][j][k];」と3次元配列にする事も、「int a[i][j][k][l];」と4次元配列・・・とする事も可能です!便利!

 

イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【ArduinoIDE reference】目次に戻る