LoginSignup
1
2

More than 3 years have passed since last update.

前提

Couseraの「Machine Learning」を受講していた。
講義の課題に Octave という言語を用いるが、文法がよくわからない。
そこで、書き方などをメモ代わりに残そうとしたものである。

文法

  • 行列にones(m×1ベクトル)を加えたいとき
    X = [ones(m,1), X];

  • 答えのデータを0,1に直したいとき
    (例 手書きの文字の判別したい、
    y(答えデータ)は2,4,1…など一桁の数で5000×1ベクトル、Y(欲しい行列)は0,1で表された5000×10行列)
    Y = zeros(m,num_labels); % 5000 x 10
    for i = 1:m
    Y(i,y(i)) = 1;
    end

    ① 最初に入れ物をつくる(欲しい行列の全要素が0であるもの)
    ② Yの1行ごとにyと対応する列に1を当てはめる
    ③ ②を5000行まで繰り返す
    ex4_nncostfunc.jpg

  • ベクトルに要素を追加したいとき
    a = []; # 入れ物を作成
    a = [a ; 2] # a = [2]
    a = [a ; 3] # a = [2;3] 2×1ベクトル

  • 行列において、各列(行)を足し合わせてベクトルにしたいとき
    例)3×2行列(a)を3×1にしたい
    sum(a,2)
    行を1つにしたい(縦に縮めたい)ときは sum(a,1)
    列を1つにしたい(横に縮めたい)ときは sum(a,2)

  • ベクトルの中で最小の値と番号を求める
    [value, idx] = min(vecotr)

  • find関数の使い方
    find(v == 3)
    ベクトルvの中で、3の値の番号を探す

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2