MATLAB 1 Presented by Email b 89208007ntu edu
MATLAB (1) Presented by: 張博思 E-mail: b 89208007@ntu. edu. tw Mobile: 0911246313 Digital Camera and Computer Vision Laboratory Department of Computer Science and Information Engineering National Taiwan University, Taipei, Taiwan
範例 DC & CV Lab CSIE NTU 3/79
File n n n command window: 每按一次 enter, 立即執行所 輸入的該項指令, 因此不能用來寫程式. m 檔: 可以寫一段落再按Debug/Run, 即可執行 該段程式 開啟舊檔: File/Open 開新檔案: File/New/M-File or 在command window 上輸入edit 存檔: File/Save or File/Save As 選擇路徑: File/Set. Path… DC & CV Lab CSIE NTU 4/79
. m file DC & CV Lab CSIE NTU 5/79
File DC & CV Lab CSIE NTU 7/79
Command Window n n n a = 10; b = 20; c = a + b; DC & CV Lab CSIE NTU 11/79
DC & CV Lab CSIE NTU 12/79
DC & CV Lab CSIE NTU 13/79
DC & CV Lab CSIE NTU 14/79
運算子 (Operators) n n n + (plus): 相加 + (uplus): 正號 - (minus): 相減 - (uminus): 負號 * (mtimes): 矩陣相乘. * (times): 陣列相乘 ^ (mpower): 矩陣次方. ^ (power): 陣列次方 (mldivide): 相除 (left division). (ldivide): 陣列相除 / (mrdivide): 分子分母倒置相除 (right division). / (rdivide): 陣列相除 DC & CV Lab CSIE NTU 16/79
運算子 (Operators) n n 例子: a = 15; b = 20; plus(a, b)? Ans: 35 DC & CV Lab CSIE NTU 17/79
運算子 (Operators) n n 例子: A = [ 1 2 3 4 ]; B = [ 5; 6; 7; 8; ]; A*B? Ans: 70 DC & CV Lab CSIE NTU 18/79
運算子 (Operators) n n 例子: A = [ 1 2 3 4 ]; B = [ 5; 6; 7; 8; ]; A. * B ? Ans: Error using ->. * DC & CV Lab CSIE NTU 19/79
關係運算子 (Relational Operators) n n n > (gt): greater than = (eq): equal < (lt): less than >= (ge): greater than or equal <= (le): less than or equal ~= (ne): not equal DC & CV Lab CSIE NTU 20/79
關係運算子 (Relational Operators) n n 例子: a = [ 1 -2 3; 4 5 -4; 5 -6 7] b = find(a<0); Ans: a = 1 -2 3 4 5 -6 7 b=4 6 8 DC & CV Lab CSIE NTU 21/79
邏輯運算元 (Logical Operators) n n n & (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 DC & CV Lab CSIE NTU 22/79
邏輯運算元 (Logical Operators) n 例子: a = [ 0 1 1 0]; b = [ 1 1 0 0]; X = and(a, b) Ans: a=0110 b=1100 X=0100 DC & CV Lab CSIE NTU 23/79
邏輯運算元 (Logical Operators) n 例子: a = 10; b = 20; if( a > b ) b = 5; end b Ans: b = 20 DC & CV Lab CSIE NTU 24/79
例子 n n n A=[1 2 3]; B=[4; 5; 6]; A*B=? Ans: 32 DC & CV Lab CSIE NTU 31/79
例子 n n n A=[1 2 3]; B=[4; 5; 6]; A. *B=? Ans: Error using ==>. * Matrix dimensions must agree. DC & CV Lab CSIE NTU 32/79
例子 n n n A=[1 2 3]; B=inv(A); B=? Ans: Error using ==> inv Matrix must be square. DC & CV Lab CSIE NTU 33/79
例子 n n n n 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 DC & CV Lab CSIE NTU 34/79
例子 n n n n A=[1 2 -3; 4 5 -4; 5 -6 7]; B=find(A>=3); B=? Ans: B= 2 3 5 9 DC & CV Lab CSIE NTU 35/79
例子 n n n X=[1 2 3; 4 5 6; 7 8 9]; X(: ) Ans: 1 4 7 2 5 8 3 6 9 DC & CV Lab CSIE NTU 36/79
例子 n n n X=[1 2 3; 4 5 6; 7 8 9]; X(: , [1, 3])=[ ] Ans: 2 5 8 DC & CV Lab CSIE NTU 37/79
例子 n n X=[1 2 3; 4 5 6; 7 8 9]; X([1, 3], : )=[ ] Ans: 246 DC & CV Lab CSIE NTU 38/79
例子 n n x = [ -2 : 2 ] x Ans: -2 0 2 DC & CV Lab CSIE NTU 39/79
例子 n n n 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 之陣 列, DC & CV Lab CSIE NTU 40/79
DC & CV Lab CSIE NTU 41/79
n end DC & CV Lab CSIE NTU 42/79
- Slides: 42