Main Content

配列インデックス付け

MATLAB® のあらゆる変数は配列であり、多数の数値を保持できます。配列内の特定要素にアクセスするには、インデックス付けを行います。

たとえば、次のような 4 行 4 列の行列 A について考えます。

A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]
A = 4×4

     1     2     3     4
     5     6     7     8
     9    10    11    12
    13    14    15    16

配列内の特定要素を参照する方法は 2 つあります。最も一般的な方法は、次のように行と列の添字を指定することです。

A(4,2)
ans = 14

あまり一般的ではありませんが役立つものとして、単一の添字を使用して各列を上から下へと順に辿っていく方法があります。

A(8)
ans = 14

単一の添字を使用した配列内の特定要素の参照を "線形インデックス付け" と呼びます。

代入ステートメントの右側で配列外要素の参照を行うと、MATLAB はエラーを返します。

test = A(4,5)

Index in position 2 exceeds array bounds (must not exceed 4).

ただし、代入ステートメントの左側では、現在の次元外の要素を指定することができます。配列のサイズは新しい要素に合わせて大きくなります。

A(4,5) = 17
A = 4×5

     1     2     3     4     0
     5     6     7     8     0
     9    10    11    12     0
    13    14    15    16    17

配列の複数の要素を参照するにはコロン演算子を使用します。これを使用すると、start:end の形式で範囲を指定できます。たとえば、A の最初の 3 行、第 2 列の要素を列挙するには、次のようにします。

A(1:3,2)
ans = 3×1

     2
     6
    10

開始値と終了値のない、コロンのみの場合、その次元内のすべての要素が指定されます。たとえば、A の 3 行目のすべての列を選択するには、次のようにします。

A(3,:)
ans = 1×5

     9    10    11    12     0

コロン演算子はまた、より一般的な start:step:end という形式を使用することにより、値が等間隔に並んだベクトルを作成します。

B = 0:10:100
B = 1×11

     0    10    20    30    40    50    60    70    80    90   100

start:end のように中央の step を省略すると、MATLAB では既定のステップ値 1 が使用されます。