Compose-2020:OMLでの行列の操作
Tutorial Level: Beginner
このチュートリアルでは、以下の操作方法について説明します:
- 行列を作成する。
- 行列を切り出す。
- 行列を抽出する。
- 行列に対する簡単な演算を実行する。
行列の作成
行列はOMLで中心となる存在で、浮動小数点数、文字、複素数を含むことができます。
-
行列を作成するには、次の例のように角括弧([])を使用します。
a = [1,2;3,4]
次のコマンドを使用して同様の行列を作成することもできます。
a = [1 2;3 4] a = [1 2 3 4]
-
実行をクリックします。これら3種類のどの代入式でも次の値が返されます。
-
複素数の場合は、次のように行列の要素に
i
を使用するか、complex関数を使用します。a = [1 2 ; 3+i 4+i]
または、次のように指定します。
a = complex([1 2;3 4],[0 0;1 1])
どちらの方法でも次の結果が返されます。
行列の切り出し
-
行列から行または列の全体を切り出すには、最初の列に
:
を使用します。a = [1,2;3,4] a(:,1)
これによって、次のように行列a
の1列目が抽出されます。 -
複数の行または列を切り出すには、次のようにそれらの行または列を指定した配列を使用します。
a = [1 2 3;4 5 6;7 8 9]; % the first and third rows of a a([1, 3],:)
これによって、次のように行列
a
の1行目と3行目が抽出されます。 -
行列の切り出しでは、行または列にある最後のインデックスを
end
で指定できます。a = [1 2 3;4 5 6;7 8 9]; a(end,:)
これによって、次のように行列
a
の最後の行が返されます。a = [1 2 3;4 5 6;7 8 9]; a(:,end-1)
このスクリプトでは、次のようにaの最後から2番目の列
が返されます。
行列の抽出
-
行列にある特定の要素を抽出するには
a(x,y)
を使用します。a
は行列の名前、x
は参照先の行、y
は参照先の列を表します。以下に例を示します。a = [1,2;3,4] b = a(1,1)
次の結果が得られます。
-
行列にある特定の複数の要素を抽出するには、それぞれ参照先の行と参照先の列を指定する2つの配列を使用します。以下に例を示します。
a = [1 2 3;4 5 6;7 8 9]; a([1 3],[2 1])
[1 3]は1行目と3行目を表し、[2 1]は2列目と1列目を表します。
-
配列にある最後の要素を抽出するためのショートカットとしてendを使用できます。次に例を示します。
a = [1 2 3;4 5 6;7 8 9] b = a([2,3],[2:end])
この結果は次のようになります。
-
代入演算を結合できます。次の例では、切り出した行列から要素を抽出します。
a = [1 2 3;4 5 6;7 8 9] % return to the third row of a a(3,:) % return to the second element of the third row a(3,:)(2)
行列に対する演算の実行
-
行列に対する簡単な演算のほとんどは、整数に対する演算と同じように実行できます。サイズが同じ2つの行列を乗算するには、次のように記述します。
a = [1,2;3,4] b = [2,3;4,5] a*b
結果は次のとおりです。
次のように
a.*b
を使用すると、エントリ同士を乗算できます。他の演算の詳細については、算術演算のヘルプドキュメントをご参照ください。
-
transposeなどの組み込み関数で行列を使用するには、次のように記述します。
transpose([1,5,2;6,2,3])
また、transposeの代わりに
.'
を使用することもできます。どちらの方法でも次に示す同じ結果が返されます。他の行列演算については、インストール先ディレクトリのTutorialsフォルダにあるスクリプトsimple_matrix.omlをご参照ください。