LoginSignup
4
5

More than 3 years have passed since last update.

Octaveの書式

Last updated at Posted at 2019-02-19

Stanford大CourseraのMachine Learningを受講することにしました。コース全11週中、第2週目以降、行列による機械学習の計算式を、Octaveという言語で実際に計算して行くことになります。Octaveはアルゴリズムの試作を迅速に行うのに適しており、結果的に開発時間の短縮につながるといわれています。Octaveの書式について、メモしておきます。

行列を扱う

r = [1 2 3 4] または [1, 2, 3, 4]
#行ベクトル

c = [1; 2; 3; 4]
#列ベクトル

m = {1 2; 3 4]
#2*2行列

A * B
#通常の行列の積。

A .* B
#通常の行列の積ではなく、各行列における同位置の数値の積を返す。

A .^2
= A .* A

A'
#行列変換

max(A)
#行列Aの最大値を含む行

magic(3)
#1-9の要素からなる3*3の行列

sum(a)
#1行行列aのgroup合計

prod(a)
#最大値

floor(a)
#小数切り捨て

ceil(a)
#小数切り上げ

rand(3)
#0.0-1.0の一様乱数からなる3*3の行列

randn(3)
#正規分布に従った乱数からなる3*3の行列

max(A, [], 1)
#各列の最大値からなる1行行列 =max(A)

max(A, [], 2)
#各行の最大値からなる1列行列

A(:)
#各列を縦に並べた1列行列

sum(A,1)
#各列の合計からなる1行行列

sum(A,2)
#各行の合計からなる1列行列

eye(9)
#9*9の単位行列(左上から右下に向け斜めに1が並ぶ)

flipud(A)
#列を右から並べ替える

pinv(A)
#行列Aの要素を正規化

プロットする

plot(t,y);
#t,yの関係をplotする

plot(t,y1);
hold on;
plot(t,y2,'r')
#y1のグラフにy2のグラフを赤色で重ねる

xlabel('time')
#x軸のラベルをtimeにする

legend('sin','cos')
#グラフ凡例

title('my plot')
#グラフのタイトル

print -dpng 'myPlot.png'
#cdにグラフ画像をファイルにする

figure(1);plot(t,y1);
#y1のグラフをfig1とする

subplot(1,2,1);
plot(t,y1);
subplot(1,2,2);
plot(t,y2)
#グラフを横に並べて表示、それぞれのグラフを指定

axis([0.5 1 -1 1])
#x, yの範囲を指定

imagesc(A)
#行列の値を色で表現する

A(1,2)
#行列Aの(1,2)の値

v=zeros(10,1)
#10行1列、要素は全てゼロ

for文、while文、if文、ほか

for i=1:10,
v(i)=2^i;
end;
v
#10行1列の各要素を2^iで定義

for i=1:10,
disp(i);
end;
#各iについてそのままiを表示する、1-10が縦に並ぶ

indices=1:10;
indices
#1-10が10行1列の行列として表示される

i=1;
while i<=5,
v(i)=100;
i=i+1;
end;
#iが1-5の間v(i)=100

pwd
#current directory表示

cd
#cdを指定、実行ファイル(.m)のある場所

addpath('c:----')
#pathを加える、current directoryの位置に関わらず実行可能になる
4
5
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
4
5