星期四, 11月 23, 2006

matlab課堂筆記 061124_第九章 繪圖

前言:
繪圖之一般程序可歸納如下:
(1)準備資料
(2)選擇適當圖形視窗及繪製區間
(3)呼叫基本繪圖函數
(4)選擇曲線型式及標記特性
(5)設定軸範圍及網線
(6)加註座標名稱、圖標及文字
(7)輸出圖形

繪圖指令 line & plot
繪線必須有起始點及終止點,但若有連續的點,採用矩陣表示時,則會自動連線,繪出整個圖形。
h(handle)=line(X,Y)
同時繪好幾條線時,可以以多行對應表示,每一行代表一線。
(如果用plot指令,需要同時出現兩個圖的話則繪圖指令中間需加上hold on指令)

* 如果要更改已經繪出圖形的顏色,則要用呼叫的方式 (y1為已繪出圖形的代碼handle)
set(y1,'Color','red')
改變線條寬度:
set(y2,'linewidth',6)
改變線條型式:
set(y3,'linestyle',':') (':'代表虛線)

* 以plot指令同時畫出三個圖形:
plot(x,x.^2,x,x.^3,x,x.^4) (畫出來的圖形就會以三個不同顏色表示:藍→綠→紅)
亦可直接在plot指令中指定線的形式:
plot(x,x.^2,'r-',x,x.^3,'go',x,x.^4,'k:')

* 若要在圖形中加上格線,可用grid on指令

* 線段指令亦可應用於三維的點線:
h=line(X,Y,Z)
h=line(X,Y,Z,'PropertyName',PropertyValue,...)


* 用line指令若要同時繪出線段的標記和連線,要畫兩次 (用plot指令則無此問題)

參數值的擷取與設定 get & set
get()set()為改變參數值可用設定指令,其格式如下:
set(sys,'Property1',Value1,'Property2',Value2,...)
or
a= get(h,'DefaultObjectTypePropertyName')


* 指令axis則有多重之應用,最主要是設定兩座標軸之範圍,其值是一個具有四個元素之列矩陣,前兩者分別為X軸之最小及最大值;後者為Y軸之最小與最大值。
axis([xmin xmax ymin ymax])
此外,axis之指令可以在後面加下面之中任一個參數:
axis auto/manual/tight/fill/ij/xy/equal/image/square/off/on

函數繪圖指令 ezplot & fplot
EZPLOT→ 以一般簡單函數進行繪圖。
ezplot(f) 是繪製函數 f(x) 之關係,其自變數x則需給予適當範圍。若在指令的參數項中未陳述範圍時[a,b],其預設值為 -2*pi < x < 2*pi。若要自行設定範圍,則可在f之後增加一個列矩陣參數,以表示其區間:
ezplot(f, [a,b])
p.s. ezplot3則為三維繪圖指令
ezplot3(x(t),y(t),z(t),[tmin tmax])
FPLOT→ 特定函數若具有M檔案之名稱,以 y = f(x)之型式,可以使用fplot 之指令進行繪圖。
在指定函數名稱時,可以使用字串指令eval,如:'sin(x)'、'[sin(x), cos(x)]',亦可使用函數手把呼叫。
fplot(function,limits,LineSpec)

併圖指令 Subplot
同一頁面要繪製許多圖時,可以使用subplot(m,n,p)這個併圖指令。
先宣告要畫幾個圖:(m,n)代表依m x n之矩陣型式分為m x n個小圖,p代表要畫的圖的位置。
要顯示3個圖的話,一樣要先宣告2x2的四分圖表示法,然後在subplot指令之最後項採用向量型式,如subplot(2,2,[1 2]) 表示上兩圖合併,而subplot(2,2, [1 3])表示左兩圖合併。
subplot只適用於2維圖形。

沒有留言: