MATLAB有非常強的圖形功能,能夠方便地實現數據的視覺化。強大的計算功能與圖形功能相結合為MATLAB在科學技術和教學方面的應用提供了更加廣闊的天地。以下着重介紹二維圖形的畫法,對三維圖形僅僅作簡單敘述。
5.1 二維圖形的繪制
5.1.1 基本形式
二維圖形的繪制是MATLAB語言圖形處理的基礎,MATLAB最經常使用的畫二維圖形的命令是plot,看兩個簡單的樣例:
>> y=[0 0.58 0.70 0.95 0.83 0.25];
>> plot(y)
生成的圖形見圖5-1,是以序號
為橫坐標、數組y的數值為縱坐標畫出的折線。
>> x=linspace(0,2*pi,30); % 生成一組線性等距的數值
>> y=sin(x);
>> plot(x,y)
生成的圖形見圖5-2,是
上30個點連成的光滑的正弦曲線。


圖5-2
5.1.2 多重線
在同一個畫面上能夠畫很多條曲線,僅僅需多給出幾個數組,比如
>> x=0:pi/15:2*pi;
>> y1=sin(x);
>> y2=cos(x);
>> plot(x,y1,x,y2)
則能夠畫出圖5-3。多重線的還有一種畫法是利用hold命令。在已經畫好的圖形上,若設置hold on,MATLA將把新的plot命令產生的圖形畫在原來的圖形上。而命令hold off 將結束這個過程。比如:
>> x=linspace(0,2*pi,30); y=sin(x); plot(x,y)
先畫好圖5-2,然后用下述命令添加�cos(x)的圖形,也可得到圖5-3。
>> hold on
>> z=cos(x); plot(x,z)
>> hold off


圖5-4
5.1.3 線型和顏色
MATLAB對曲線的線型和顏色有很多選擇,標注的方法是在每一對數組后加一個字符串參數,說明例如以下:
線型 線方式: - 實線 :點線 -. 虛點線 - - 波折線。
線型 點方式: . 圓點 +加號 * 星號 x x形 o 小圓
顏色: y黃; r紅; g綠; b藍; w白; k黑; m紫; c青.
以以下的樣例說明使用方法:
>> x=0:pi/15:2*pi;
>> y1=sin(x); y2=cos(x);
>> plot(x,y1,’b:+’,x,y2,’g-.*’)
可得圖形5-4。
5.1.4 網格和標記
在一個圖形上能夠加網格、標題、x軸標記、y軸標記,用下列命令完畢這些工作。
>> x=linspace(0,2*pi,30); y=sin(x); z=cos(x);
>> plot(x,y,x,z)
>> grid
>> xlabel(‘Independent Variable X’)
>> ylabel(‘Dependent Variables Y and Z’)
>> title(‘Sine and Cosine Curves’)
它們產生圖5-5:

圖5-5
也能夠在圖形的不論什么位置加上一個字符串,如用:
>> text(2.5,0.7,’sinx’)
表示在坐標x=2.5, y=0.7處加上字符串sinx。更方便的是用鼠標來確定字符串的位置,方法是輸入命令:
>> gtext(‘sinx’)
在圖形窗體十字線的交點是字符串的位置,用鼠標點一下就能夠將字符串放在那里。
5.1.5 坐標系的控制
在缺省情況下MATLAB自己主動選擇圖形的橫、縱坐標的比例,假設你對這個比例不愜意,能夠用axis命令控制,經常使用的有:
axis([xmin xmax ymin ymax]) [ ]中分別給出x軸和y軸的最大值、最小值
axis equal 或 axis(‘equal’) x軸和y軸的單位長度同樣
axis square 或 axis(‘square’) 圖框呈方形
axis off 或 axis(‘off’) 清除坐標刻度
還有axis auto axis image axis xy axis ij axis normal axis on axis(axis)
使用方法可參考在線幫助系統。
5.1.6 多幅圖形
能夠在同一個畫面上建立幾個坐標系, 用subplot(m,n,p)命令;把一個畫面分成m×n個圖形區域, p代表當前的區域號,在每一個區域中分別畫一個圖,如
>> x=linspace(0,2*pi,30); y=sin(x); z=cos(x);
>> u=2*sin(x).*cos(x); v=sin(x)./cos(x);
>> subplot(2,2,1),plot(x,y),axis([0 2*pi –1 1]),title(‘sin(x)’)
>> subplot(2,2,2),plot(x,z),axis([0 2*pi –1 1]),title(‘cos(x)’)
>> subplot(2,2,3),plot(x,u),axis([0 2*pi –1 1]),title(‘2sin(x)cos(x)’)
>> subplot(2,2,4),plot(x,v),axis([0 2*pi –20 20]),title(‘sin(x)/cos(x)’)
共得到4幅圖形,見圖5-6.
圖5-6
5.2 三維圖形
限於篇幅這里僅僅對幾種經常使用的命令通過樣例作簡介.
5.2.1 帶網格的曲面
例 作曲面z=f(x,y)的圖形

用下面程序實現:
>> x=-7.5:0.5;7.5;
>> y=x;
>> [X,Y]=meshgrid(x,y); (3維圖形的X,Y數組)
>> R=sqrt(X.^2+Y.^2)+eps; (加eps是防止出現0/0)
>> Z=sin(R)./R;
>> mesh(X,Y,Z) (3維網格表面)
畫出的圖形如圖5-7. mesh命令也能夠改為surf, 僅僅是圖形效果有所不同,讀者能夠上機查看結果。

圖5-8
5.2.2 空間曲線
例 作螺旋線 x=sint, y=cost, z=t
用下面程序實現:
>> t=0:pi/50:10*pi;
>> plot3(sin(t),cos(t),t) (空間曲線作圖函數, 使用方法相似於plot)
畫出的圖形如圖5-8
5.2.3 等高線
用contour 或 contour3 畫曲面的等高線,如對圖5-7的曲面, 在上面的程序后接
contour(X,Y,Z,10) 就可以得到10條等高線。
5.2.4 其他
較實用的是給三維圖形指定觀察點的命令view(azi,ele),azi 是方位角, ele 是仰角.
缺省時 azi=
ele=
.
5.3 圖形的輸出
在數學建模中,往往須要將產生的圖形輸出到Word文檔中。通常可採用下述方法:
首先,在MATLAB圖形窗體中選擇【File】菜單中的【Export】選項,將打開圖形輸出對話框,在該對話框中能夠把圖形以emf、bmp、jpg、pgm等格式保存。然后,再打開對應的文檔,並在該文檔中選擇【插入】菜單中的【圖片】選項插入對應的圖片就可以。
