Octave で行列/ベクトル内の要素を参照する

行列内の特定の要素を参照する

下記のような 3x3 の行列があるとします。

>> A = [1 2 3; 4 5 6; 7 8 9]
A =

   1   2   3
   4   5   6
   7   8   9

この行列の 1 行 2 列の位置の要素を参照するには次のようにします。 各要素を参照する方法です。

1 行 2 列の要素を参照する
>> A(1, 2)
ans =  2

行列内の要素を行単位、列単位で取得する

すべての行や列を表すには、: を使います。

3 行目の要素をすべて取得する(行ベクトル)
>> A(3, :)
ans =

   7   8   9
2 列目の要素をすべて取得する(列ベクトル)
>> A(:, 2)
ans =

   2
   5
   8
1 行目と 3 行目の要素をすべて取得する
>> A([1 3], :)
ans =

   1   2   3
   7   8   9

指定した位置への代入にも使用することができます。 下記の例では、3 行目の各要素を書き換えています。

>> A(3, :) = [10 20 30]
A =

    1    2    3
    4    5    6
   10   20   30

末尾のインデックスを表す特殊キーワード end

行列要素を参照するときに、行や列の位置を 開始位置:終了位置 という形で指定すると範囲指定になります。 この 終了位置 には、末尾を表す end を指定することができます。 下記の例では、2 行目から最後の行までの要素を抽出しています。

>> A = [1 2 3; 4 5 6; 7 8 9];
>> A(2:end, :)
ans =

   4   5   6
   7   8   9

ベクトル内の特定の要素を参照する

ベクトル内の特定の位置の要素を参照するときも、行列と同様にインデックスを指定します。 ただし、ベクトルの場合は指定するインデックスは 1 つだけです。

>> v = [10 20 30 40 50];
>> v(2)
ans =  20

上記は行ベクトルのケースですが、列ベクトルの場合も同じように位置指定することができます。

>> v = [10; 20; 30; 40; 50];
>> v(2)
ans =  20

範囲指定で部分ベクトルを抽出することもできます。 下記の例では、2 番目から 4 番目までの要素を抽出しています。

>> v = [10 20 30 40 50];
>> v(2:4)
ans =

   20   30   40

末尾を示す end キーワードも使用できます。

>> v = [10 20 30 40 50];
>> v(2:end)
ans =

   20   30   40   50