MATLAB 的 plot 指令是最基本的繪圖指令,可以對於一組 x 座標及相對應的 y 座標進行描點作圖,例如:
在上例中,linspace(0, 2*pi) 產生從 0 到 2π 且長度為 100 (預設值)的向量 x,y 則是對應的 y 座標值,plot(x, y) 則可對這 100 個二維平面上的點進行描點作圖。
如果只給定一個向量,那麼 plot 指令會將此向量對其索引值(Index)作圖。因此,若 y 為一向量,則 plot(y) 和 plot(1:length(y), y) 會得到相同的結果。
若要利用 plot 指令一次畫出多條曲線,可將 x 及 y 座標依次送入 plot 指令即可,例如:
MATLAB 在畫出多條曲線時,會自動輪換曲線顏色,以利分辨。(亦可由使用者自行指定曲線顏色及其他相關性質,詳見下一節。)若要以不同的線標(Marker)來作圖,可輸入如下:
如果只給定一個矩陣 y,plot 指令可對矩陣 y 的每一個行向量(Column Vector)作圖,例如:
其中 peaks 指令可以產生一個 49×49 的矩陣,代表一個二維函數的值。(如果您直接在 MATLAB 指令視窗鍵入 peaks,就可以看見這個函數的方程式及曲面。)因此 plot(y) 就直接畫出這 49 條直線,其效果類似於從側面觀看 peaks 函數。
如果 x 和 y 都是矩陣,那麼 plot(x, y) 將會取用 y 的每一個行向量和對應的 x 行向量作圖,例如:
如果 z 是一個複數向量或矩陣,那麼 plot(z) 是將 z 的實部(即 real(z))和虛部(即 imag(z))分別當成 x 座標和 y 座標來作圖,其效果是相同於 plot(real(z), imag(z)),舉例如下:
在上例中,x 是一個 30×30 的亂數矩陣,z 則是 x 的「固有值」(Eigenvalue,或稱「特徵值」)。由於 z 是一複數向量,而且每一個複數都和其共軛複數同時出現,因此所畫出的圖是上下對稱的。
相關的 MATLAB 基本二維繪圖指令,可整理如下表。
指令 說明 Plot x 軸和 y 軸均為線性刻度(Linear Scale) loglog x 軸和 y 軸均為對數刻度(Logarithmic Scale) semilogx x 軸為對數刻度,y 軸為線性刻度 semilogy x 軸為線性刻度,y 軸為對數刻度 plotyy 畫出兩個刻度不同的y軸 例如,若要使 x 軸為對數刻度,來對正弦函數作圖,可進行如下:
此外,plotyy 指令可以畫出兩個刻度不同的 y 軸,如下:
請注意在上圖中,y1 的刻度是在左手邊,y2 的刻度是在右手邊,而且兩邊的刻度是不一樣的。
MATLAB程式設計:入門篇