MATLAB簡介 MATLAB程式設計《入門篇》 http://neural.cs.nthu.edu.tw/jang/books/matlabProgramming4beginner/cdrom/matlabProgramming4beginner/slide/ 《 MATLAB 程式設計與應用》 http://www.cs.nthu.edu.tw/~jang/mlbook/ The MathWorks - Product Listing - Products by Category http://www.mathworks.com/products/product_listing/index.html INTLAB - INTerval LABoratory http://www.ti3.tu-harburg.de/~rump/intlab/
容易學習的理由 不需要 宣告變數 屬高階語言:程式語法貼近口語邏輯 直譯式:不需要編譯程式
外觀介紹 Command Window Workspace Current Directory help (善用查詢指令)
基本運算 運算符號: 加(+) , 減(-) , 乘(*) , 除(/) , 右除(\) , 指數(^) >> (5*2+3.5)/5 ans = 2.7000 >> (5*2+3.5)/5; 有分號的話則不會顯示計算結果 format 大小寫有區別
內建參數及複數 pi = 3.141592….. Inf = infinity (inf) NaN = not a number (0/0, inf-inf) (nan) z = 3 + 4j i,j 為內建虛數符號 變數命名: a-z為開頭, 之後可接_ 1 2 3數字, 長度可以蠻長的, 63個字母。
向量 s = [1 3 5 2 4] % s = [1,3,5,2,4] 與上列結果相同 t = 2*s+1 t(3) = 2 C = [1:2:10] C’
矩陣 A = [1 2 3 4; 5 6 7 8; 9 10 11 12]; A(2,3) = 5 A(3) B = A(2,1:3) size, length
矩陣 n = 5; m = 10; A = zeros(n,m); A = ones(n,m); A = eye(n);
矩陣運算 A, B : 已設定好的矩陣 A+B : 矩陣相加 A - B : 矩陣相減 A*B : 矩陣相乘 A/B : 矩陣左除
矩陣運算 A = [1:3 ; 4:6 ; 7:9]; B = (5*A+3.5)/5 C = eye(3) 比較 A*C 與 A.*C % 計算 Ax=b,求 x = ?
數學函數 y = abs(x) y = sin(x) y = exp(x) y = log(x) y = sqrt(x)
數學函數(複數) y = angle(z) y = real(z) y = imag(z) y = conj(z) y = exp(j*pi/6)
數學函數(向量) y = min(x) y = max(x) y = mean(x) y = sum(x) y = sort(x) y = prod(x) % ex: n! = prod([1:n])
M-file 底稿 1. 變數是基本工作空間的全域變數 2. 容易進行變數檢視及除錯 函式 1. 通常包含輸入與輸出 2. 變數預設為局部 百分比符號, %, 後面是註解
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於 == 等於 ~= 不等於 < 小於 > 大於 <= 小於或等於 >= 大於或等於 & 且 (logical and) | 或 (logical or) ~ 非 (logical not) 1 真 (true) 0 假 (false)
流程控制 Program Control Statements Conditional Control if switch Loop Control for while
條件控制 – if Ex: if pi^2 > 2^pi disp( 'pi^2 is bigger. ') else disp( '2^pi is bigger. ') end if 條件式 運算式1 else 運算式2 end
條件控制 – if if 條件式1 運算式1 else if 條件式2 運算式2 else 運算式3 end
條件控制 – switch
條件控制 – switch
條件控制 – switch
迴圈控制 – for loop for 變數 = 初值 : 間隔 : 終值 運算式 end
迴圈控制 – while
流程控制 Program Control Statements Loop Control continue break Program Termination return
迴圈控制 – 跳出迴圈 break 強制中斷並跳出迴圈。 continue 回到迴圈的下一步繼續做。
函式 函式名稱(需與檔案名稱相同) function y = sum1n(x) y = 0; for ii = 1 : x 程式本體 輸出 輸入 function y = sum1n(x) y = 0; for ii = 1 : x y = y + ii; end 程式本體
二維繪圖 給定 x 座標(向量) 給定 y 座標(向量) plot( x , y , ' 顏色 符號 or 線 ' )
二維繪圖 figure(1) x = linspace(0, 2*pi); % 預設為100點 y = sin(x); plot(x,y,'-o') figure(2) x = linspace(0,2*pi,10);
圖形輸出 fn = ['outmap.jpg']; print( '-djpeg', fn ); fn = ['outmap.ps']; plot(x,y,'-o') fn = ['outmap.jpg']; print( '-djpeg', fn ); fn = ['outmap.ps']; print( '-depsc', fn ); fn = ['outmap.fig']; saveas( gcf, fn );
延伸學習 subplot plotyy semilogy, loglog Legend gplot orient