行列の作成
前回はベクトルの計算について説明しました。今回は行列を扱っていきます。MATLABの「MAT」は行列をあらわす「Matrix」が由来といわれている通り、MATLABは行列の演算を得意としていて高速に行うことができます。そのため、行列の扱いには慣れていたほうがいいですね。基本的な考え方はベクトルと同じです。早速行列を作成します。
A = [1 2 3; 4 5 6; 7 8 9]実行結果↓
A =
1 2 3
4 5 6
7 8 9列ベクトルを生成する際に説明しましたが、「;(セミコロン)」で改行をあらわすため1,2,3が1行目、4,5,6が2行目、7,8,9が3行目の3×3の行列が作成できました。(慣例として行列を代入する文字は大文字から記載します。)
行列の値の抽出
作成した行列から値を取り出す方法を紹介します。行列Aから2行3列目の値を取り出したい場合はA(2,3)と記載します。
A(2,3)実行結果↓
ans =
6行列Aの2行3列目の値6を意図通り抽出できました。
行列から複数の値を取り出す
行列から列を取り出す
行列から特定の列のみ取り出す場合は「:(コロン)」を使用します。
A(:,2)実行結果↓
ans =
2
5
8上の例では行列Aの2列目を取り出しています。1列目の場合A(:,1)、3列目の場合A(:,3)と記述します。
行列から行を取り出す
行列から行を取り出す場合はA(1,:)のように記述します。
A(:,1)実行結果↓
ans =
1 2 3指定行の行ベクトルを取り出すことができました。
行列に行や列を追加・削除
行列に列を追加する方法はベクトルの場合と基本的に変わりません。行列Aに4列目を追加する方法は下記の通りです。
A = [A [10; 11; 12]]実行結果↓
A =
1 2 3 10
4 5 6 11
7 8 9 12追加した列を削除する場合は下記の通りです。
A(:,4) = []実行結果↓
A =
1 2 3
4 5 6
7 8 9追加した行列Aの4列目に空行列[]を代入することで、4列目を削除しています。
行に対する操作も同様です。行列Aに4行目を追加します。
A = [A; [10 11 12]]実行結果↓
A =
1 2 3
4 5 6
7 8 9
10 11 124行目に[10 11 12]が追加されました。この行を削除する場合は
A(4,:) = []実行結果↓
A =
1 2 3
4 5 6
7 8 9追加した4行目を削除することができました。
行列を生成する関数
続いて行列を生成する関数をいくつか紹介します。
zeros
zeros関数は指定したサイズで要素が全て0の行列を生成する関数です。
A = zeros(4,5)実行結果↓
A =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 04行5列の0行列が作成できました。
ones
すべての要素が1の行列を生成します。zerosと同じ使い方ができます。
ones(4,5)実行結果↓
ans =
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1eye
対角要素が1でそれ以外の要素が0の行列を作成します。こちらも使い方はzeros/onesと同様です。
eye(4,5)実行結果↓
ans =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0行と列のサイズが異なる場合の出力も理解しておく必要があります。
rand
0から1のランダムな値の行列を作成します。こちらも使い方はこれまでの関数と同様です。
rand(4,5)実行結果↓
ans =
0.8147 0.6324 0.9575 0.9572 0.4218
0.9058 0.0975 0.9649 0.4854 0.9157
0.1270 0.2785 0.1576 0.8003 0.7922
0.9134 0.5469 0.9706 0.1419 0.9595ランダムな値の行列が作成されました。
まとめ
行列の操作について説明しました。基本的にはベクトルと同様に扱えたと思います。行列は要素数が多いため、とりあえず適当な値を入れようと思っても、1つ1つ指定するのは大変です。そのため、行列を生成する便利な関数もあわせて説明しました。次は行列の計算について解説します。
コメント