筆記 - Octave 基礎

[筆記] Octave 基礎

運算語法

  • + : 加
  • - : 減
  • * : 乘
  • / : 除
  • ^ : 次方

邏輯語法

  • ==
  • ~= : 不等於
  • &&
  • ||
  • xor()

矩陣創建

  • A = [1 2; 3 4; 5 6] : 創建矩陣
  • v = n:i:m : 生成 n 到 m,間隔 i 的矩陣
  • v = n:m : 生成 n 到 m,間隔 1 的矩陣
  • ones(n, m) : 生成都是 1 的矩陣,n rows,m columns
  • zeros(n, m) : 生成都是 0 的矩陣,n rows,m columns
  • rand(n, m) : 生成 0 到 1 內隨機數字的矩陣,n rows,m columns
  • randn(n, m) : 生成常態分配的矩陣,n rows,m columns
  • hist(變數, n) : 生成 n 個數據的直方圖
  • eye(n) : 生成 n*n 的單位矩陣
  • magic(n) : 生成 nn 矩陣,內涵元素為 1 ~ n n,每行每列斜對角總和相同

矩陣操作

查看

  • disp(A) : 將 A 矩陣打印出來
  • A(n, m) : 查看 n row,m column 的值,: 代表全部
  • A([n m], :) : 查看 n row 和 m row 所有的值
  • size(A, n) : 查看 A 是幾乘幾的矩陣,n 可以不輸入,1 為查看 row,2 為查看 column
  • length(A) : 查看 A 的最大維度
  • who : 查看當前所有的矩陣
  • whos : 詳細查看當前所有的矩陣
  • max(A) : 查看 A 向量的最大值與索引位置,若 A 為矩陣查看 A 矩陣內每個 column 的最大值
  • max(A, [], n) : 查看 A 矩陣內的最大值,n = 1 為查看 column,2 為查看 row
  • min(A) : 查看 A 向量的最小值與索引位置,若 A 為矩陣查看 A 矩陣內每個 column 的最小值
  • min(A, [], n) : 查看 A 矩陣內的最小值,n = 1 為查看 column,2 為查看 row
  • find(A < n) : 查看元素小於 n 的位置

修改

  • A = [A, [i; j; k]] : 給 A 矩陣新增一行 column,值為 i、j、k
  • A(:) : 將 A 矩陣的所有元素排成一行向量
  • V = [A B] : 將 A、B 矩陣左右合併
  • V = [A; B] : 將 A、B 矩陣上下合併
  • V = A(n:m) : 將 A 矩陣 n ~ m 筆資料放進 V
  • clear A : 刪除 A 矩陣,單個 clear 是刪除所有矩陣

載入存入

  • load <檔名>.<副檔名> : 載入檔案
  • save <檔名>.mat A : 將 A 矩陣存入檔案
  • save <檔名>.txt A -ascii : 將 A 矩陣存入檔案,存成 text

矩陣運算

  • A * B : A、B 矩陣相乘
  • A .* B : A、B 矩陣純量相乘
  • A .^ n : A 矩陣的 n 次方
  • n ./ A : n 常數與 A 矩陣純量相除
  • log(A) : 對 A 矩陣取 log
  • exp(A) : 對 A 矩陣取 exp
  • abs(A) : 對 A 矩陣取絕對值
  • A' : A 矩陣的轉置矩陣
  • A < 3 : true 回傳 1,false 回傳 0
  • sum(a) : a 向量的總和
  • sum(A, n) : A 矩陣的總和,1 為 column,2 為 row
  • prod(a) : a 向量的總積
  • floor(A) : A 矩陣取地板函數,捨去正小數至最近整數
  • ceil(A) : A 矩陣取天花板函數,加入正小數至最近整數
  • pinv(A) : A 矩陣的反矩陣

繪製

  • plot(n, m, 'r') : 繪圖,n 為 x 軸,m 為 y 軸,’r’ 為顏色,可以不加
  • hold on : 讓已生成的圖像保持顯示,可以持續在上繪圖
  • xlable('<x 軸名稱>') : 給 x 軸命名
  • ylable('<y 軸名稱>') : 給 y 軸命名
  • legend('<第一個圖>', '<第二個圖>') : 給每個繪圖命名
  • title('<標題>') : 給此圖命名
  • print -dpng '<檔名>.png' : 儲存此圖為圖檔
  • close : 關掉顯示中的繪圖
  • figure(n); plot(n, m); : 生成繪圖於編號 n 圖像,可以同時顯示多張圖像
  • subplot(n, m, i) : 生成 n * m 格子的圖像,目前使用第 i 個格子
  • axis([n, m, i, j]) : 修改 x 軸 ( n ~ m )、y 軸 ( i ~ j ) 範圍
  • clf : 清空圖像上的繪圖
  • imagesc(A) : 將 A 矩陣可視化
  • colorbar : 顯示代表數值的顏色表
  • colormap gray : 將顏色表改為灰階

控制語法

for

1
2
3
for i = 1:10, %1 到 10
<待執行程式碼>;
end;

while

1
2
3
4
5
i = 1;
while <條件>,
<待執行程式碼>;
i = i + 1;
end;

if

1
2
3
4
5
6
7
if <條件>,
<待執行程式碼>;
elseif <條件>,
<待執行程式碼>;
else
<待執行程式碼>;
end;

函式

1
2
3
function y = squareThisNumber(x)

y = x^2
  • 將此文件存為 .m
  • addpath('<檔案位址>') : 這樣 Octave 就能找到此函式
1
2
3
4
function [y1, y2] = squareThisNumber(x)

y1 = x^2
y2 = x^3
  • 函式可返回多個值

其他

  • PS1('>> '); : 可以簡化命令前字符
  • 賦予值時加上 ; : 可以不將賦予後的結果打印出來
  • help : 幫助
  • pwd : Octave 當前路徑
  • 可用 , 連接多條命令
  • exitquit : 關閉 Octave
tags: 筆記 程式語言 機器學習 Octave
Author: Kenny Li
Link: https://kennyliblog.nctu.me/2019/07/12/Octave-basic/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.