[MATLAB] 2.1 簡単な演算

2.1 簡単な演算

(1) 行列の作成方法

 コマンドウィンドウにて,以下のコマンドを入力する。なお “[↵]” はリターンキーを押すことを表す。

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

リターンキーを押すと,コマンドウィンドウに次のような結果が出力される。

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

図 2.1 コマンド入力の結果(1)

 “>>” で始まる行は,入力したコマンドを表し,その下が結果を表す。MATLABでは [ ] で区切られた情報は行列1として認識される。また,行列の要素の区切りはカンマ (,) で,行の区切りはセミコロン (;) で表される。つまり,上の例では3行×3列の行列を入力しており,1行目の要素が 1, 2, 3である。結果には3行3列の行列Aが作成されたことが示されている。

 次に,以下のコマンドを入力する。

B=magic(3) [↵]

 結果は次の通りとなる。

>> B=magic(3)
B =
     8     1     6
     3     5     7
     4     9     2

図 2.2 コマンド入力の結果(2)

 この例で使用した “magic( )” という命令は,「魔方陣2」を作成しなさいという命令で,括弧内の数字は魔方陣の大きさを表す。今回の場合,3行×3列の魔方陣を作成しなさい,ということになる。結果は変数Bに格納される。

 なお,今回使用した “magic( )” のように,ある条件を与えたときにその条件に応じてあらかじめ決められた演算を行うプログラムのことを「関数 (function)」という。今回の場合,“3” が条件で,これにもとづき3×3の魔方陣が作成されている。関数の使い方はヘルプで確認できる。“magic( )”について確認したものが以下である:

>> help magic
magic  Magic square.
    magic(N) is an N-by-N matrix constructed from the integers
    1 through N^2 with equal row, column, and diagonal sums.
    Produces valid magic squares for all N > 0 except N = 2.

    Reference page for magic

図 2.3 関数“magic( )”のヘルプ内容

 MATLABには多数の関数が用意されている3。また,自分自身で新たな関数を作成し,MATLABに新たな機能を追加していくことができる。

(2) 行列の演算

 次に,簡単な演算の例を示す。MATLABは行列計算が行えることが特徴である。先の例で作成した3行×3列の行列A,Bを使い,演算の例を示す。まず,加減算の例を以下に示す。2つの行列の和 (A+B),差 (A−B) が計算され,それらの結果がS1,M1に格納されている。

>> S1=A+B
S1 =
     9     3     9
     7    10    13
    11    17    11

>> M1=A-B
M1 =
    -7     1    -3
     1     0    -1
     3    -1     7

図 2.4 行列の加減算

 次に,積の例を示す。

>> P1=A*B
P1 =
    26    38    26
    71    83    71
   116   128   116

>> P2=A.*B
P2 =
     8     2    18
    12    25    42
    28    72    18

図 2.5 行列の積

 ここでは “A*B” と “A.*B” の2つの例を示している。両者で結果は異なる。前者は通常の行列の積となっているが,後者は「要素ごと」の積になっている。“.” は「要素ごと」という意味である。

 次に商の例を示す。積の場合と同様,“.” がついた場合は要素ごとの商となっている4

>> D1=A/B
D1 =
   -0.0333    0.4667   -0.0333
    0.1667    0.6667    0.1667
    0.3667    0.8667    0.3667

>> D2=A./B
D2 =
    0.1250    2.0000    0.5000
    1.3333    1.0000    0.8571
    1.7500    0.8889    4.5000

図 2.6 行列の商

(3) 結果表示の省略

 ここまでに示した例では,コマンドの結果を逐一確認してきた。しかし,実際に使用する際には結果を表示させたくない場合がある。そのような場合,コマンドの最後にセミコロン (;) を付けて実行する。


  1. ベクトルを含む。 ↩︎
  2. 魔方陣とは,縦方向・横方向・斜め方向のいずれでも,1つの列の和が同じ行列をいう。 ↩︎
  3. 関数の一覧は,例えば次のページなどで確認できる:

    https://jp.mathworks.com/help/matlab/referencelist.html?type=function&s_cid=doc_ftr

  4. “/B” はBの逆行列をかけることを意味し,“* inv(B)”と同じである。 ↩︎

このブログの人気の投稿

[MATLAB] 2.3 行列の要素を抽出する

[MATLAB] A1 PAD (Problem Analysis Diagram)

[MATLAB] 3.3 解析