11/06/2006

9.5.2 fplot 繪圖指令

特定函數若具有M檔案之名稱,以 y = f(x)之型式,可以使用fplot 之指令進行繪圖。其中 x 為向量,具有特定區間;y為與 x同大小之向量,與x有對應函數值。在指定函數名稱時,可以使用字串指令eval,如:'sin(x)'、'[sin(x), cos(x)]',亦可使用函數手把呼叫。

fplot 指令在於繪製特定區間內之函數圖形。其語法如下:








語法使用說明
fplot(function,limits,LineSpec) 繪出 'function'之圖,使用limits規定之領域,配以 LineSpec之線規
fplot(function,limits,tol)使用limits規定之領域, 相對誤差值 tol (其預設值為 2e-3,亦即為 0.2%之精確度)。
fplot( function, limits, LineSpec, P1, P2,…)因函數需要加入其他輸入參數 P1, P2,函數之型式Y = function(X,P1,P2,...)之函數
fplot(axes_handle,...)使用特定座標軸之握把來指定繪在特定座標上
[X,Y] = fplot(function,limits,...)得到函數之兩個座標值,可能利用plot再將此值繪出


由表中得知:fplot(function,limits,LineSpec) 之指令係繪出 'function'之圖,使用limits規定之領域,配以 LineSpec之線規。LineSpec線規包括線之型式、標記及顏色。 fplot(function,limits,tol) 則是繪出 'function'之圖,使用limits規定之領域, 相對誤差值 tol (其預設值為 2e-3,亦即為 0.2%之精確度)。

fplot(function,limits,tol,LineSpec) 之指令係繪出 'function'內容之圖,使用limits規定之領域與相對誤差值 tol,再配以 LineSpec之線規。 fplot(function,limits,n) 是以最低n( n >= 1 )之點數繪出其圖形。

fplot(axes_handle,...) 是使用特定座標軸之握把來指定繪在特定座標上。有時可以用gca得到握把值。 [X,Y] = fplot(function,limits,...) 則得到函數之兩個座標值,可能利用plot再將此值繪出。 [...] = fplot(function,limits,tol,n,LineSpec,P1,P2,...) 則可因函數需要加入其他輸入參數 P1, P2, 等,如 Y = function(X,P1,P2,...)之函數。

若每一個x值有多個對應函數值,則對應函數值可以作成矩陣型式,利用其行向元素容納多項之對應值。而經過fplot繪出後,會同時繪出多條回應線。即:

[x] --> [f1(x) f2(x) f3(x)]
[x1 x2] --> [f1(x1) f2(x1) f3(x1); f1(x2) f2(x2) f3(x2)]

上述語法中,若需要後者輸入,而前面的項目僅需要預設值時,該項目可以空集合[]代之。

範例:



fplot('sinh',[-4 4])






繪圖的過程中,對於變化劇烈的函數,一般可用fplot 指令來進行較精確的取點作圖,它會對劇烈變化處進行較密集的取樣,例如:



fplot('cos(1/x)', [0.02 0.2]); % [0.02 0.2]





利用寫好的函數可以利用fplot繪圖,下面函數之內容為在特定x範圍內,分別求出y= x; y = x² y = x3; y = x4;y = x5 等五條曲線。其轉換值置於Y內:


function Y=polynorm(x)
Y=[x(:) x(:).^2 x(:).^3 x(:).^4 x(:).^5];

利用這個ploynorm函數,即可以fplot指令繪圖。呼叫該函數時,使用函數手把亦可,或將函數手把存在某一變數內呼叫。例如:

fh=@polynorm
fplot(fh,[-10 10 -100 100])

或,

fplot(@polynorm,[-10 10 -100 100])


其結果為:



9.5.3 newplot


 
h = newplot
h = newplot(hsave)


準備一個新圖之位置及座標,以供後續繪圖之進行。一般使用plot()指令,均需重新建圖,故其參數之設定均屬新值,若要維持先前的座標參數設定而構造新圖,則需以newplot指令為之。第二項有參數hsave,則是列出一些物件之握把,使其在新圖提出時,不將這些所列之握把物件消除。