Introduction to Matlab Hsing-Chuan Yu VC Lab 2008 Fall 1 H.C. Yu, VC LAB, NCU, 2008 Fall
Dec 31, 2015
H.C. Yu, VC LAB, NCU, 2008 Fall 1
Introduction to Matlab
Hsing-Chuan YuVC Lab 2008 Fall
H.C. Yu, VC LAB, NCU, 2008 Fall 2
[1]MATLAB 7 程式設計作者:洪維恩, 出版社:旗標 , 出版日期: 2006-03-01
[2]Matlab 程式設計:入門篇作者:張智星, 出版社:清蔚科技 , 出版日期: 2004-09-
30
[]3MATLAB 程式設計與應用 (網路版 ) 張智星 連結點
參考書目
H.C. Yu, VC LAB, NCU, 2008 Fall 3
Matlab (Matrix Laboratory) 數學計算軟體於1984 年,由美國 Mathworks 公司所推行。
Matlab 7 外觀
1.認識Matlab (1/2)
指令視窗
工作空間與目錄視窗
歷史指令視窗
H.C. Yu, VC LAB, NCU, 2008 Fall 4
1.認識Matlab (2/2)Help/doc :查詢已知指令
lookfor :尋找未知指令找到Ex: >> help sqrt
指令視窗
編修 / 查看變數內容目錄檢視
工作空間與目錄視窗
尋找 / 使用曾輸入的指令可以拖曳或複製的方式編修
歷史指令視窗
H.C. Yu, VC LAB, NCU, 2008 Fall 5
變數命名規則與使用◦ 第一個字母必需是英文字母。◦ 字母間不可留空格。◦ 最多只能有 31 個字母, MATLAB 會忽略多餘字母。
◦ MATLAB 在使用變數時,不需預先經過變數宣告
( Variable Declaration )的程序,而且所有數值變數均以預設的 double 資料型式儲存。
2.基本數學運算 (1/5)
H.C. Yu, VC LAB, NCU, 2008 Fall 6
一般數學符號運算◦ 在 MATLAB 命令視窗( Command Window )內的
提示符號( >> )之後輸入運算式,並按入 Enter 鍵即可。例如:
>> (5*2+3.5)/5 ans = 2.7000
◦ 若不想讓 MATLAB 每次都顯示運算結果,只需在運算式最後加上分號( ; )即可,例如:
>> (5*2+3.5)/5;
2.基本數學運算 (2/6)
H.C. Yu, VC LAB, NCU, 2008 Fall 7
函式數學運算◦ >> y = abs(x) % 取 x 的絕對值◦ >> y = sin(x) % 取 x 的正弦值◦ >> y = exp(x) % 自然指數 exp(x)◦ >> y = log(x) % 自然對數 ln(x)◦ >> y = gcd(a,b) % 計算 a 與 b 的最大公因數◦ >> y = lcm(a,b) % 計算 a 與 b 的最小公倍數
2.基本數學運算 (3/5)
H.C. Yu, VC LAB, NCU, 2008 Fall 8
2.基本數學運算 (4/5)
>> z=2*y+1>> y = 43.59
>> y = [1 2 ; 3 4]
Z = ?
矩陣數學運算指令與函數 說明a:b 從 a 到 b ,間距為 1 ,建立一個列向量a:step:b 從 a 到 b ,間距為 step ,建立一個列向量linspace(a,b) 從 a 到 b ,建立一個具有 100 個元素的列向量linspace(a,b,n) 從 a 到 b ,建立一個具有 n 個元素的列向量length(v) 查詢向量 v 的元素個數v’ 將向量 v 轉置,行向量變列向量,列向量變行向量
H.C. Yu, VC LAB, NCU, 2008 Fall 9
查詢工作區裡使用的變數
2.基本數學運算 (5/5)
指令 說明who 查詢於目前的工作區內,有哪些變數正在使用whos 同 who ,但會列出每一個變數詳細的資訊whos var 查詢變數 var的詳細資訊clear 清除工作區內的所有變數clear var 清除工作區內的變數 var
H.C. Yu, VC LAB, NCU, 2008 Fall 10
1. 計算下列各式(1) (-4.83)-1.6 (2) Log412
(3) (4i+3)/(5i+2)
2. 設列向量 v=[0,12,17,21] ,作答下列問題(1) 輸出矩陣 m=[v; v/2; v/3; v/4](2) 計算 m*v’
3. A~Z 的 ASCII 碼為 65~90 ,試以 char 函數列出英文字母 A~Z
2.基本數學運算 (課堂練習 )
Ex: >> char(97)ans =
a
H.C. Yu, VC LAB, NCU, 2008 Fall 11
如同一般程式語言一樣, Matlab 也可以用來撰寫程式碼。 Matlab 用來處存程式碼的檔案稱為 M 檔案,可以分成兩種,一種是底稿,另一種是函數。底稿可以用來儲存一系列的指令,而函數則是把程式碼模組化,以方便使用者來呼叫。
3.使用M檔案與函數 (1/4)
H.C. Yu, VC LAB, NCU, 2008 Fall 12
底稿 (script)─ 由一系列 Matlab 的指令敘述所組成。
函數 (function)─ 可用來完成某個特定的工作。與底稿不同的是,函數可以傳入引數、回傳結果。
參考範例
3.使用M檔案與函數 (2/4)
H.C. Yu, VC LAB, NCU, 2008 Fall 13
要開啟 M 檔案編輯器,可在指令視窗鍵入>> edit或者按下工具列的「 New M-File 」
註解 (comment) :「 % 」符號後面都視為註解 多行註解: ctrl + r 取消多行註解: ctrl + t
3.使用M檔案與函數 (3/4)
H.C. Yu, VC LAB, NCU, 2008 Fall 14
函數的基本架構
3.使用M檔案與函數 (4/4)
function 輸出變數 = 函數名稱 ( 引數 1, 引數 2,…)
% H1 列,此行可用來簡述函數的功用
% 此區是函數的說明文字,可用來註解% 函數的語法、注意事項等
函數的主體
H.C. Yu, VC LAB, NCU, 2008 Fall 15
1. 查詢、閱讀並使用 M 檔案
3.使用M檔案與函數 (課堂練習 )
H.C. Yu, VC LAB, NCU, 2008 Fall 16
基本二維平面繪圖
連接 (0,3) 、 (2,4) 、 (4,0) 、 (7,6) 、 (10,1) 、(12,3)>> x=[0 2 4 7 10 12]>> y=[3 4 0 6 1 3 ]>> plot(x,y)
4.用Matlab繪圖 (1/2)
函數 說明plot(x,y) 以 X 為資料點的橫座標所組成的向量, y 為縱
座標所組成的向量,描點繪出 (x,y)曲線圖Plot(y) X 的間距為 1 ,描點繪出 (x,y) 的曲線圖
H.C. Yu, VC LAB, NCU, 2008 Fall 17
4.用Matlab繪圖 (2/2)基本三維空間繪圖
>> x=linspace(-8,8,30)>> y=x>> [xx,yy]=meshgrid(x,y)>> expr=sqrt(xx.^2+yy.^2)>> zz=sin(expr)./(expr+eps)>> mesh(xx,yy,zz)
函數 說明mesh(x,y,z) 分別以資料點的 x 、 y 與 z座標之集合所組成的矩
陣 xx 、 yy 、 zz 來繪出三維的網格圖mesh(z) 設二維矩陣 z 的維度為 mxn ,則 mesh(z) 可繪出
x座標從 1 到 m , y座標從 1 到 n 的三維網格圖
H.C. Yu, VC LAB, NCU, 2008 Fall 18
1. 試用下列語法,並觀察結果>> plot(x,y,’*’)>> plot(x,y,’-*’)>> plot(x,y,’--*’)>> plot(x,y,’-.’)
4.用Matlab繪圖 (課堂練習 )
指令 說明hold 設定 hold 為 on 時,則新產生的圖形會疊加在原有圖形的上面;若是設
定為 off ,則原有的圖形會被新產生的圖形覆蓋掉。
H.C. Yu, VC LAB, NCU, 2008 Fall 19
4.用Matlab繪圖 (附 )資料來源:參考書目[1]