Menu

機械学習 - Octaveのコマンドまとめ ( Computing on Data )

coursera(コーセラ)ANDREW NG氏のMachine Learning(機械学習)を進めます。

前回Octaveの導入をして、Andew教授からたくさんコマンドを教えてもらったのでまとめておきます。

行列同士の計算

次のような行列を準備します。

Aは 3*2

Cは 2*2 の行列です。

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

   1   2
   3   4
   5   6

>> C = [1 1; 2 2]
C =

   1   1
   2   2

行列の積を計算してみます。

>> A*C
ans =

    5    5
   11   11
   17   17

手計算の行列の積はこのページでやり方をまとめています。


行列の要素ごとの計算

次のような行列を準備します。

Aは 3*2

Bは 2*2 の行列です。

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

   1   2
   3   4
   5   6

>> B = [11 12; 13 14; 15 16]
B =

   11   12
   13   14
   15   16

.(ドット)を使用して行列の要素毎の積を計算してみます。

>> A .* B
ans =

   11   24
   39   56
   75   96

要素同士が計算されています。


べき乗の計算

次のような行列を準備します。

Aは 3*2の行列です。

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

   1   2
   3   4
   5   6

^(キャリー)を使用してべき乗を計算してみます。

>> A .^ 2
ans =

    1    4
    9   16
   25   36

それぞれの要素が2乗されます。


要素単位の演算

次のような行列を準備します。

vは 3*1の行列です。

>> v = [1; 2; 3]
v =

   1
   2
   3

.(ドット)を使用して各要素単位での割り算を計算してみます。

>> 1 ./ v
ans =

   1.00000
   0.50000
   0.33333

それぞれの要素単位での結果が出ます。


対数

次のような行列を準備します。

vは 3*1の行列です。

>> v = [1; 2; 3]
v =

   1
   2
   3

logを対数を計算してみます。

>> log(v)
ans =

   0.00000
   0.69315
   1.09861

それぞれの要素での対数を出せます。


指数

次のような行列を準備します。

vは 3*1の行列です。

>> v = [1; 2; 3]
v =

   1
   2
   3

expを対数を計算してみます。

>> exp(v)
ans =

    2.7183
    7.3891
   20.0855

それぞれの要素での指数を出せます。


絶対値

次のような行列を準備します。

vは 3*1の行列です。

>> v = [1; 2; 3]
v =

   1
   2
   3

absで絶対値を算出してみます。

>> abs(v)
ans =

   1
   2
   3

それぞれの要素での絶対値を出せます。


行列の生成

ones(m,n)でm行n列の全ての値が1となる行列を生成します。

>> ones(3,1)
ans =

   1
   1
   1

単位行列の生成

eye(m,n)でm行n列の単位行列を生成します。

>> eye(3,4)
ans =

Diagonal Matrix

   1   0   0   0
   0   1   0   0
   0   0   1   0

逆行列の生成

Aは 3*2の行列です。

>> A = [1 2;2 3;3 4]
A =

   1   2
   2   3
   3   4

'で逆行列を生成します。

>> A'
ans =

   1   2   3
   2   3   4

疑似逆行列の生成

Aは 3*2の行列です。

>> A = [1 2;2 3;3 4]
A =

   1   2
   2   3
   3   4

pinvで疑似逆行列を生成します。

>> pinv(A)
ans =

  -1.83333  -0.33333   1.16667
   1.33333   0.33333  -0.66667

魔方陣の行列の生成

magic(m,n)でm行n列の魔方陣の行列を生成します。

>> magic(3)
ans =

   8   1   6
   3   5   7
   4   9   2

最大値の算出

aは 1*4の行列です。

Aは 3*2の行列です。

>> a = [1 15 2 0.5]
a =

    1.00000   15.00000    2.00000    0.50000
>> A = [1 2; 2 3; 3 4]
A =

   1   2
   2   3
   3   4    
>>

maxで行列内の最大値を算出します。

>> max(a)
ans =  15

>> max(A)
ans =

   3   4

行列内の足し算

aは 1*4の行列です。

Aは 3*2の行列です。

>> a = [1 15 2 0.5]
a =

    1.00000   15.00000    2.00000    0.50000
>> A = [1 2; 2 3; 3 4]
A =

   1   2
   2   3
   3   4    
>>

sumで行・列の値の足し算を算出します。

>> sum(a)
ans =  18.500

>> sum(A)
ans =

   6   9
>> sum(A,2)
ans =

   3
   5
   7

行列内の積

aは 1*4の行列です。

Aは 3*2の行列です。

>> a = [1 15 2 0.5]
a =

    1.00000   15.00000    2.00000    0.50000
>> A = [1 2; 2 3; 3 4]
A =

   1   2
   2   3
   3   4    
>>

prodで行・列の値の積を算出します。

>> prod(a)
ans =  15

>> prod(A)
ans =

    6   24

用語

対数

GNUとは、FSFが進めているUNIX互換ソフトウェア群の開発プロジェクトの総称。
フリーソフトウェアの理念に従った修正・再配布自由なUNIX互換システムの構築を目的としている。
GNUで開発されたソフトウェアに適用されているGPLは、「あらゆるソフトウェアは自由に利用できるべき」というFSFの理念を体現したライセンスとして知られている。

魔法陣

魔方陣(まほうじん、英:Magic square)とは、n×n 個の正方形の方陣に数字を配置し、縦・横・対角線のいずれの列についても、その列の数字の合計が同じになるもののことである。特に1から方陣のマスの総数 n2 までの数字を1つずつ過不足なく使ったものを言う。アニメやファンタジーなどで用いられる「魔法陣」とは無関係である。


うおーたくさんコマンドでてきた


参考サイト

Written by masasikatano on Sunday March 26, 2017

« やる気を引き出す新サイト作った - 機械学習 - Octaveのコマンドまとめ ( Plotting Data ) »


Share