#前提
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行まで繰り返す
-
ベクトルに要素を追加したいとき
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の値の番号を探す