Presented by: 張博思 E-mail: b89208007@ntu.edu.tw Mobile: 0911246313 MATLAB (1) Presented by: 張博思 E-mail: b89208007@ntu.edu.tw Mobile: 0911246313
Outline 基本認識 程式變數與表達式 矩陣的特性與基本運算
範例
File command window: 每按一次 enter, 立即執行所輸入的該項指令, 因此不能用來寫程式 .m 檔: 可以寫一段落再按Debug/Run,即可執行該段程式 開啟舊檔: File/Open 開新檔案: File/New/M-File or 在command window 上輸入edit 存檔: File/Save or File/Save As 選擇路徑: File/SetPath…
.m file
.m file 要執行.m file必須要把路徑指定在此file所在的資料夾中才能執行 路徑則是利用前述的選擇路徑來指定
File
Command Window clc: 清空command window畫面 clear: 清除變數 clear all: 清除所有使用變數 help: 對於想要查詢的function, 都可以利用”help function名稱”查詢到它的用法 若不想讓 MATLAB 每次都顯示運算結果,只需在運算式最後加上分號(;)即可
Command Window MATLAB 可同時執行以逗號(,)或分號(;)隔開的數個運算式 例如: >> x = sin(pi/3); y = x^2; >> z = y*10 z = 7.5000
若要加入註解(Comments),可以使用百分比符號(%),MATLAB 會將所有在百分比符號之後的文字視為程式的註解 Command Window 若要加入註解(Comments),可以使用百分比符號(%),MATLAB 會將所有在百分比符號之後的文字視為程式的註解 例如: >> y = (5*2+3.5)/5; % 將運算結果儲存在變數 y,但不用顯示於螢幕 >> z = y^2 % 將運算結果儲存在變數 z,並顯示於螢幕 z = 7.2900
Command Window a = 10; b = 20; c = a + b;
Outline 基本認識 程式變數與表達式 矩陣的特性與基本運算
運算子 (Operators) + (plus): 相加 + (uplus): 正號 - (minus): 相減 - (uminus): 負號 * (mtimes): 矩陣相乘 .* (times): 陣列相乘 ^ (mpower): 矩陣次方 .^ (power): 陣列次方 \ (mldivide): 相除 (left division) .\ (ldivide): 陣列相除 / (mrdivide): 分子分母倒置相除 (right division) ./ (rdivide): 陣列相除
運算子 (Operators) 例子: a = 15; b = 20; plus(a,b)? Ans: 35
運算子 (Operators) 例子: A = [ 1 2 3 4 ]; B = [ 5; 6; 7; 8; ]; A * B ? Ans: 70
運算子 (Operators) 例子: A = [ 1 2 3 4 ]; B = [ 5; 6; 7; 8; ]; A .* B ? Ans: Error using -> .*
關係運算子 (Relational Operators) > (gt): greater than = (eq): equal < (lt): less than >= (ge): greater than or equal <= (le): less than or equal ~= (ne): not equal
關係運算子 (Relational Operators) 例子: a = [ 1 -2 3; 4 5 -4; 5 -6 7] b = find(a<0); Ans: a = 1 -2 3 4 5 -4 5 -6 7 b = 4 6 8
邏輯運算元 (Logical Operators) & (AND): logical AND | (or): logical OR ~ (not): logical NOT (xor): logical EXCLUSIVE OR (any): true if any elements of vector is nonzero (all): true if all elements of vector are nonzero
邏輯運算元 (Logical Operators) 例子: a = [ 0 1 1 0]; b = [ 1 1 0 0]; X = and(a,b) Ans: a = 0 1 1 0 b = 1 1 0 0 X = 0 1 0 0
邏輯運算元 (Logical Operators) 例子: a = 10; b = 20; if( a > b ) b = 5; end b Ans: b = 20
變數的基本規定與運算 1. 變數的第一個字必須是英文字母 2. 變數可以由數字、字母、或符號組成 3. 變數字數沒有限制, 但MATLAB僅鑑別最前面的19個字型 4.符號變數只允許 “_” (underscore) 可以使用 5.不可以使用中文為變數名稱或作為任何相關之資料 6. 正數、負數、實數與一般數學定義相同,例如: a = 10.5 是實數
變數的基本規定與運算 7. 凡具有以 “i” 或是 “j” 結尾之變數, 視為虛數, 例如: a = 5j 表示 a = 0 + 5.0000i 8. 一維陣列可用下列方式表示: a = [1 2 3] 或是 a = [1,2,3] 9. 二維陣列可用下列方式表示: a=[1 2 3; 4 5 6] 10. 三維陣列可用二維陣列方式再增加一維 11. 變數若在其右上角加上 (‘) 號,表示矩陣transpose
Outline 基本認識 程式變數與表達式 矩陣的特性與基本運算
矩陣的基本觀念 列 (row): 由上而下分別為第1列,第2列 行 (column): 由左而右分別為第1行,第2行 第一行 第二行 第三行 第四行 第1列 第2列 第3列 第4列
矩陣要項 1. A(m,n)表示矩陣變數A是一個 m 列 (row) x n 行 (column) 的矩陣 2. 各元素間用空白鍵或是逗號分開 3. 整個元素組用方括號 “[ ]” 4. row 與 row 間使用分號區隔 5. 符號 “:” (冒號) 再矩陣中是一種遞增的意思, 例如: x = 20 : 25 表示 x = 20 21 22 23 24 25
矩陣中的元素 1. 矩陣中的元素可以用 (row, column) 來表示, 例如: X = A(2,3) 表示矩陣A的內容第二列第三行的元素取出置入矩陣X之中 2. X = [1 2 3; 4 5 6]; A = X(2,3) A = 6 3. 矩陣中的元素可以是MATLAB所允許的任何表達式, 例如: A = [1 abs(y) sqrt(z)*x+10]
例子 A=[1 2 3]; B=[4; 5; 6]; A*B=? Ans: 32
例子 A=[1 2 3]; B=[4; 5; 6]; A.*B=? Ans: Error using ==> .* Matrix dimensions must agree.
例子 A=[1 2 3]; B=inv(A); B=? Ans: Error using ==> inv Matrix must be square.
例子 A=[1 2 0; 2 5 -1; 4 10 -3]; B=inv(A); B=? Ans: B= 5 -6 2 -2 3 -1 0 2 -1
例子 A=[1 2 -3; 4 5 -4; 5 -6 7]; B=find(A>=3); B=? Ans: B= 2 3 5 9
例子 X=[1 2 3; 4 5 6; 7 8 9]; X(:) Ans: 1 4 7 2 5 8 3 6 9
例子 X=[1 2 3; 4 5 6; 7 8 9]; X(:,[1,3])=[ ] Ans: 2 5 8
例子 X=[1 2 3; 4 5 6; 7 8 9]; X([1,3],:)=[ ] Ans: 2 4 6
例子 x = [ -2 : 2 : 2 ] x Ans: -2 0 2
例子 a=[1 3 5 7 9 11 13 15 17 19]; b=[2 4 6 8 10 12 14 16 18 20]; [X,Y]=meshgrid(a,b); Mesh(X,Y) 註解: [X,Y]=meshgrid(a,b) 意義是以a, b 為界限, 並將a, b 的值轉換成為X, Y 之陣列,
end