Octave - Matlab Tutorials

Courseraオンライン講座の機械学習コースを 直感的な理解を優先して、ゆるーく まとめてます。 正確には公式サイトを参照して下さい。 [MachineLearning Week2](https://www.coursera.org/learn/machine-learning/home/week/2) # Octave - Matlab Tutorials ## Basic Operations Octaveの基本的な操作をまとめます。 コメントを書くときは % で始めます。 - 1 ~= 2: % !=のことで、等しくないことをチェック - a = pi % πを代入 - disp( sprintf( '2 decimals: %0.2f', a)) % テキストのフォーマット出力 - format long % 以降、結果を長く表示 - format short % 以降、結果を短く表示。 * A = [ 1 2; 3 4; 5 6] % 配列を定義 - v = 1: 0.1: 2 % 1 から 2まで 0.1ステップで加算 * ones( 2, 3) % 2行3列 のすべてが 1の配列を作成 * 2*ones( 2, 3) % 上記行列を倍に * w = zeros( 1,3) % 1行3列の、すべて0の行列を作成 * w = rand( 1, 3) % 乱数配列 * w = randn( 1, 3) % Gaussian乱数配列 - w = -6 + sqrt( 10)*(randn(1,10000)); % 10000個 - hist(w) % ヒストグラム表示 - hist(w,60) % ヒストグラム表示(詳細) + eye(4) % 単位行列 - help eye % ヘルプ表示 ## Moving Data Around 使用頻度の高い処理をまとめます。 - A = [ 1 2; 3 4; 5 6] - size(A) % 行列の大きさ - size(A,1) % 最初の次元の大きさ - length(v) % 最長の長さ + pwd % 作業ディレクトリ + cd % ディレクトリの変更 + load [file] % ファイルの読み込み + who % 現在定義されている変数表示 - A( 3, 2) % Index 3行目 2列の値 - A( 2, :) % 2行目すべて - A( :, 2) % 2列目すべて - A( [1 3], :) % 1行目と3行目すべて - A(:,2) = [10; 11; 12] % 2列目を入れ替える - A = [A, [100; 101; 102]]; % A に列を追加 - A(:) % すべての項をひとつのベクターにする + B = [11 12; 13 14; 15 16] + [ A B ] % 結合 ## Computing on Data Octaveでの計算方法をまとめます。 - A = [ 1 2; 3 4; 5 6] - B = [ 11 12; 13 14; 15 16] - C = [ 1 1; 2 2] + A * C % 行列の積 + A .* B % '.'ピリオド が付くと、対応するBの項目同士の積 - v = [1;2;3] - log(v) % 項目ごとのlog - exp(v) % 項目ごとのexp - abs(v) % 項目ごとのabs - V + oncs(length(v),1) + A' % 転置 transpose + max(A) % 最大値 + [val,ind] = max( A) % 最大値とそのインデックスを保存 - A < 3 % 項目ごとの比較 + A = magic(3) % 任意の配列作成 + [r,c] = find(A >= 3) % 条件に会う行と、列を保存 - a = [1 15 2 0.5] - sum(a) % 各列の加算 - prod(a) % products 積の計算 - floor(a) % 切り下げ - ceil(a) % 切り上げ - rand(3) % random 3x3 + max( A, [], 1) % 列での最大値 + max( A, [], 2) % 行での最大値 + max(max(A)) %列、行最大値の統合 - A(:) % ベクトル化する + A = magic(9) + sum(A,1) % 各列の加算 + sum(A,2) % 各行の加算 - A .* eye(9) - A .* flipud(eye(9)) % 上下入れ替え + A = magic(3) + pinv(A) % 逆行列 + pinv(A) * A ## Plotting data Octaveでのデータのプロットをまとめます。 - t = [0: 0.01: 0.98]; - y1 = sin(2*pi*4*t); - y2 = cos(2*pi*4*t); + plot(t,y1); % データのプロット + hold on; % プロットを保持 + plot(t,y2,'r'); % データの上書きプロット - close; % プロット画面を閉じる + figure(1); plot(t,y1); % Figure1プロット + figure(2); plot(t,y2); % Figure2プロット - subplot(1,2,1); % 1行 2列画面の、1番目にアクセス - plot(t,y1); % 上記設定位置にプロット - subplot(1,2,2); % 1行 2列画面の、2番目にアクセス - plot(t,y2); % 上記設定位置にプロット + axis([0.5 1 -1 1]) % データ表示範囲指定 x1 x2 y1 y2 - clf; % プロット内容消去 - A = magic(5); - imagesc(A) % カラーモザイク表示 - imagesc(A), colorbar, colormap gray; % グレイスケール・モザイク表示 - a=1, b=2, c=3 ## Control Statements for, while, if statement for i=1:10, v(i) = 2^i; end; indices=1:10; for i=indices, disp(i); end; i=1; while true, v(i) = 999; i = i + 1; if i == 6, break; end; end; ### defining functions 独自関数を定義することが出来ます ## Vectorization forループの代わりにベクトルで計算する方法

Comments

Popular posts from this blog

Markdownで投稿する前に Visual Codeで下書き

Google code-prettify

【最重要】 Cost Function