§5 MATLAB圖形功能
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-25.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-85.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等格式保存。然後,再打開相應的文檔,並在該文檔中選擇【插入】菜單中的【圖片】選項插入相應的圖片即可。