Matlab畫圖函數
強大的畫圖功能是Matlab的特色之中的一個,Matlab提供了一系列的畫圖函數,用戶不需要過多的考慮畫圖的細節,僅僅需要給出一些基本參數就能獲得所需圖形,這類函數稱爲高層畫圖函數。此外,Matlab還提供了直接對圖形句柄進行操做的低層畫圖操做。這類操做將圖形的每一個圖形元素(如座標軸、曲線、文字等)看作一個獨立的對象,系統給每一個對象分配一個句柄,可以經過句柄對該圖形元素進行操做,而不影響其它部分。spa
本章介紹繪製二維和三維圖形的高層畫圖函數以及其它圖形控制函數的使用方法,在此基礎上,再介紹可以操做和控制各類圖形對象的低層畫圖操做。orm
一.二維畫圖對象
二維圖形是將平面座標上的數據點鏈接起來的平面圖形。可以採用不一樣的座標系,如直角座標、對數座標、極座標等。二維圖形的繪製是其它畫圖操做的基礎。ci
一.繪製二維曲線的基本函數字符串
在Matlab中,最基本而且應用最爲普遍的畫圖函數爲plot,利用它可以在二維平面上繪製出不一樣的曲線。數學
1. plot函數的基本使用方法it
plot函數用於繪製二維平面上的線性座標曲線圖,要提供一組x座標和相應的y座標,可以繪製分別以x和y爲橫、縱座標的二維曲線。plot函數的應用格式table
plot(x,y) 當中x,y爲長度一樣的向量,存儲x座標和y座標。基礎
例51 在[0 , 2pi]區間,繪製曲線
程序例如如下:在命令窗體中輸入如下命令
>> x=0:pi/100:2*pi;
>> y=2*exp(-0.5*x).*sin(2*pi*x);
>> plot(x,y)
程序運行後,打開一個圖形窗體,在當中繪製出例如如下曲線
注意:指數函數和正弦函數之間要用點乘運算,因爲兩者是向量。
例52 繪製曲線
這是以參數形式給出的曲線方程,僅僅要給定參數向量,再分別求出x,y向量就能夠輸出曲線:
>> t=-pi:pi/100:pi;
>> x=t.*cos(3*t);
>> y=t.*sin(t).*sin(t);
>> plot(x,y)
程序運行後,打開一個圖形窗體,在當中繪製出例如如下曲線
以上提到plot函數的自變量x,y爲長度一樣的向量,這是最多見、最主要的使用方法。實際應用中還有一些變化。分別說明:
①
2. 含多個輸入參數的plot函數
plot函數可以包括若干組向量對,每一組可以繪製出一條曲線。含多個輸入參數的plot函數調用格式爲:plot(x1,y1,x2,y2,…,xn,yn)
例如如下列命令可以在同一座標中畫出3條曲線。
>> x=linspace(0,2*pi,100);
>> plot(x,sin(x),x,2*sin(x),x,3*sin(x))
當輸入參數有矩陣形式時,配對的x,y按相應的列元素爲橫座標和縱座標繪製曲線,曲線條數等於矩陣的列數。
>> x=linspace(0,2*pi,100);
>> y1=sin(x);
>> y2=2*sin(x);
>> y3=3*sin(x);
>> x=[x;x;x]';
>> y=[y1;y2;y3]';
>> plot(x,y,x,cos(x))
x,y都是含有三列的矩陣,它們組成輸入參數對,繪製三條曲線;x和cos(x)又組成一對,繪製一條餘弦曲線。
利用plot函數可以直接將矩陣的數據繪製在圖形窗體中,此時plot函數將矩陣的每一列數據做爲一條曲線繪製在窗體中。如
>> A=pascal(5)
A =
1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
1 5 15 35 70
>> plot(A)
3. 含選項的plot函數
Matlab提供了一些畫圖選項,用於肯定所繪曲線的線型、顏色和數據點標記符號。這些選項如表所看到的:
線型 |
顏色 |
標記符號 |
|
- 實線 |
b藍色 |
. 點 |
s 方塊 |
: 虛線 |
g綠色 |
o 圓圈 |
d 菱形 |
-. 點劃線 |
r紅色 |
× 叉號 |
∨朝下三角符號 |
-- 雙劃線 |
c青色 |
+ 加號 |
∧朝上三角符號 |
|
m品紅 |
* 星號 |
<朝左三角符號 |
|
y黃色 |
|
>朝右三角符號 |
|
k黑色 |
|
p 五角星 |
|
w白色 |
|
h 六角星 |
例 用不一樣的線型和顏色在同一座標內繪製曲線 及其包絡線。
>> x=(0:pi/100:2*pi)';
>> y1=2*exp(-0.5*x)*[1,-1];
>> y2=2*exp(-0.5*x).*sin(2*pi*x);
>> x1=(0:12)/2;
>> y3=2*exp(-0.5*x1).*sin(2*pi*x1);
>> plot(x,y1,'k:',x,y2,'b--',x1,y3,'rp');
在該plot函數中包括了3組畫圖參數,第一組用黑色虛線畫出兩條包絡線,第二組用藍色雙劃線畫出曲線y,第三組用紅色五角星離散標出數據點。
4. 雙縱座標函數plotyy
在Matlab中,假設需要繪製出具備不一樣縱座標標度的兩個圖形,可以使用plotyy函數,它能把具備不一樣量綱,不一樣數量級的兩個函數繪製在同一個座標中,有利於圖形數據的對照分析。使用格式爲:plotyy(x1,y1,x2,y2)
x1,y1相應一條曲線,x2,y2相應還有一條曲線。橫座標的標度一樣,縱座標有兩個,左邊的相應x1,y1數據對,右邊的相應x2,y2。
例:(略)
二.繪製圖形的輔助操做
繪製完圖形之後,可能還需要對圖形進行一些輔助操做,以使圖形意義更加明白,可讀性更強。
1. 圖形標註
在繪製圖形時,可以對圖形加上一些說明,如圖形的名稱、座標軸說明以及圖形某一部分的含義等,這些操做稱爲增長圖形標註。有關圖形標註函數的調用格式爲:
title(’圖形名稱’) (都放在單引號內)
xlabel(’x軸說明’)
ylabel(’y軸說明’)
text(x,y,’圖形說明’)
legend(’圖例1’,’圖例2’,…) P190
當中,title、xlabel和ylabel函數分別用於說明圖形和座標軸的名稱。text函數是在座標點(x,y)處增長圖形說明。(P88 或用gtext命令)。legend函數用於繪製曲線所用線型、顏色或數據點標記圖例,圖例放置在空白處,用戶還可以經過鼠標移動圖例,將其放到所但願的位置。除legend函數外,其它函數一樣適用於三維圖形,在三維中z座標軸說明用zlabel函數。
上述函數中的說明文字,除了使用標準的ASCII字符外,還可以使用LaTex(一種流行的數學排版軟件)格式的控制字符,這樣就可以在圖形上增長希臘字符,數學符號和公式等內容。在Matlab支持的LaTex字符串中,用/bf , /it , /rm控制字符分別定義黑體、斜體和正體字符,受LaTex字符串控制部分要加大括號{}括起來。好比,text(0.3,0.5,’the usful {/bf MATLAB}’),將使MATLAB一詞黑體顯示。一些經常使用的LaTex字符見表,各個字符可以單獨使用也可以和其它字符及命令配合使用。如text(0.3 ,0.5 ,’sin({/omega}t+{/beta})’)
將獲得標註效果 。
標識符 |
符號 |
標識符 |
符號 |
標識符 |
符號 |
/alpha |
|
/epsilon |
|
/infty |
|
/beta |
|
/eta |
|
/int |
|
/gamma |
|
/Gamma |
|
/partial |
|
/delta |
|
/Delta |
|
/leftarrow |
|
/theta |
|
/Theta |
|
/rightarrow |
|
/lambda |
|
/Lambda |
|
/downarrow |
|
/xi |
|
/Xi |
|
/uparrow |
|
/pi |
|
/Pi |
|
/div |
|
/omega |
|
/Omega |
|
/times |
|
/sigma |
|
/Sigma |
|
/pm |
|
/phi |
|
/Phi |
|
/leq |
|
/psi |
|
/Psi |
|
/geq |
|
/rho |
|
/tau |
|
/neq |
|
/mu |
|
/zeta |
|
/forall |
|
/nu |
|
/chi |
|
/exists |
|
2. 座標控制
在繪製圖形時,Matlab可以本身主動依據要繪製曲線數據的範圍選擇合適的座標刻度,使得曲線可以儘量清楚的顯示出來。因此,普通狀況下用戶沒必要選擇座標軸的刻度範圍。但是,假設用戶對座標不愜意,可以利用axis函數對其又一次設定。其調用格式爲
axis([xmin xmax ymin ymax zmin zmax])
假設僅僅給出前四個參數,則依照給出的x、y軸的最小值和最大值選擇座標系範圍,繪製出合適的二維曲線。假設給出了全部參數,則繪製出三維圖形。
axis函數的功能豐富,其經常使用的使用方法有:
axis equal :縱橫座標軸採用等長刻度
axis square:產生正方形座標系(默以爲矩形)
axis auto:使用默認設置
axis off:取消座標軸
axis on :顯示座標軸
還有:給座標加網格線可以用grid命令來控制,grid on/off命令控制畫仍是不畫網格線,不帶參數的grid命令在兩種之間進行切換。
給座標加邊框用box命令控制。和grid同樣使用方法
例 :繪製分段函數,並增長圖形標註。(略)
3. 圖形保持
普通狀況下,每運行一次畫圖命令,就刷新一次當前圖形窗體,圖形窗體原有圖形將不復存在,假設但願在已經存在的圖形上再繼續增長新的圖形,可以使用圖形保持命令hold。hold on/off 命令是保持原有圖形仍是刷新原有圖形,不帶參數的hold命令在二者之間進行切換。
例:(略)
4. 圖形窗體切割
在實際應用中,經常需要在一個圖形窗體中繪製若干個獨立的圖形,這就需要對圖形窗體進行切割。切割後的圖形窗體由若干個畫圖區組成,每一個畫圖區可以創建獨立的座標系並繪製圖形。同一圖形窗體下的不一樣圖形稱爲子圖。Matlab提供了subplot函數用來將當前窗體切割成若干個畫圖區,每一個區域表明一個獨立的子圖,也是一個獨立的座標系,可以經過subplot函數激活某一區,該區爲活動區,所發出的畫圖命令都是做用於該活動區域。調用格式:
subplot(m,n,p)
該函數把當前窗體分紅m×n個畫圖區,m行,每行n個畫圖區,區號按行優先編號。當中第p個區爲當前活動區。每一個畫圖區贊成以不一樣的座標系單獨繪製圖形。
例:(略)
三.繪製二維圖形的其它函數
1. 其它形式的線性直角座標圖
在線性直角座標中,其它形式的圖形有條形圖、階梯圖、杆圖和填充圖等,所採用的函數分別爲:
bar(x,y,選項) 選項在單引號中
stairs(x,y,選項)
stem(x,y,選項)
fill(x1,y1,選項1,x2,y2,選項2,…)
前三個函數和plot的使用方法相似,僅僅是沒有多輸入變量形式。fill函數按向量元素下標漸增次序依次用直線段鏈接x,y相應元素定義的數據點。
例5-8:分別以條形圖、填充圖、階梯圖和杆圖形式繪製曲線
x=0:0.35:7;
y=2*exp(-0.5*x);
subplot(2,2,1);bar(x,y,'g');
title('bar(x,y,''g'')');axis([0, 7, 0 ,2]);
subplot(2,2,2);fill(x,y,'r');
title('fill(x,y,''r'')');axis([0, 7, 0 ,2]);
subplot(2,2,3);stairs(x,y,'b');
title('stairs(x,y,''b'')');axis([0, 7, 0 ,2]);
subplot(2,2,4);stem(x,y,'k');
title('stem(x,y,''k'')');axis([0, 7, 0 ,2]);
2. 極座標圖
polar函數用來繪製極座標圖,調用格式爲:
polar(theta,rho,選項)
當中,theta爲極座標極角,rho爲極徑,選項的內容和plot函數相似。
例5-9:繪製 的極座標圖
theta=0:0.01:2*pi;
rho=sin(3*theta).*cos(5*theta);
polar(theta,rho,'r');
3. 對數座標圖
在實際應用中,經常常使用到對數座標,Matlab提供了繪製對數和半對數座標曲線的函數,其調用格式爲:
semilogx(x1,y1,選項1,x2,y2,選項2,…)
semilogy(x1,y1,選項1,x2,y2,選項2,…)
loglog(x1,y1,選項1,x2,y2,選項2,…)
這些函數中選項的定義和plot函數全然同樣,所不一樣的是座標軸的選取。semilogx函數使用半對數座標,x軸爲經常使用對數刻度,而y軸仍保持線性刻度。semilogy剛好和semilogx相反。loglog函數使用全對數座標,x、y軸均採用對數刻度。
例:略
4. 對函數自適應採樣的畫圖函數
5. 其它形式的二維圖形
二. 三維畫圖
一.繪製三維曲線的基本函數
最主要的三維圖形函數爲plot3,它將二維畫圖函數plot的有關功能擴展到三維空間,可以用來繪製三維曲線。其調用格式爲:
plot3(x1,y1,z1,選項1,x2,y2,z2,選項2,…)
當中每一組x,y,z組成一組曲線的座標參數,選項的定義和plot的選項同樣。當x,y,z是同維向量時,則x,y,z相應元素構成一條三維曲線。當x,y,z是同維矩陣時,則以x,y,z相應列元素繪製三維曲線,曲線條數等於矩陣的列數。
例513 繪製空間曲線
該曲線相應的參數方程爲
t=0:pi/50:2*pi;
x=8*cos(t);
y=4*sqrt(2)*sin(t);
z=-4*sqrt(2)*sin(t);
plot3(x,y,z,'p');
title('Line in 3-D Space');
text(0,0,0,'origin');
xlabel('X');ylabel('Y');zlabel('Z');grid;
二.三維曲面
1.平面網格座標矩陣的生成
當繪製z=f(x,y)所表明的三維曲面圖時,先要在xy平面選定一矩形區域,假定矩形區域爲D=[a,b]×[c,d],而後將[a,b]在x方向分紅m份,將[c,d]在y方向分紅n份,由各劃分點作平行軸的直線,把區域D分紅m×n個小矩形。生成表明每一個小矩形頂點座標的平面網格座標矩陣,最後利用有關函數畫圖。
產平生面區域內的網格座標矩陣有兩種方法:
利用矩陣運算生成。
x=a:dx:b;
y=(c:dy:d)’;
X=ones(size(y))*x;
Y=y*ones(size(x));
通過上述語句運行後,矩陣X的每一行都是向量x,行數等於向量y的元素個數,矩陣Y的每一列都是向量y,列數等於向量x的元素個數。
利用meshgrid函數生成;
x=a:dx:b;
y=c:dy:d;
[X,Y]=meshgrid(x,y);
語句運行後,所獲得的網格座標矩陣和上法,一樣,當x=y時,可以寫成meshgrid(x)
2.繪製三維曲面的函數
Matlab提供了mesh函數和surf函數來繪製三維曲面圖。mesh函數用來繪製三維網格圖,而surf用來繪製三維曲面圖,各線條之間的補面用顏色填充。其調用格式爲:
mesh(x,y,z,c)
surf(x,y,z,c)
普通狀況下,x,y,z是維數一樣的矩陣,x,y是網格座標矩陣,z是網格點上的高度矩陣,c用於指定在不一樣高度下的顏色範圍。c省略時,Matlab以爲c=z,也即顏色的設定是正比於圖形的高度的。這樣就可以獲得井井有條的三維圖形。當x,y省略時,把z矩陣的列下標看成x軸的座標,把z矩陣的行下標看成y軸的座標,而後繪製三維圖形。當x,y是向量時,要求x的長度必須等於z矩陣的列,y的長度必須等於必須等於z的行,x,y向量元素的組合構成網格點的x,y座標,z座標則取自z矩陣,而後繪製三維曲線。
例515 用三維曲面圖表現函數 :
爲了便於分析三維曲面的各類特徵,如下畫出3種不一樣形式的曲面。
%program 1
x=0:0.1:2*pi;
[x,y]=meshgrid(x);
z=sin(y).*cos(x);
mesh(x,y,z);
xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');
title('mesh'); pause;
%program 2
x=0:0.1:2*pi;
[x,y]=meshgrid(x);
z=sin(y).*cos(x);
surf(x,y,z);
xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');
title('surf'); pause;
%program 3
x=0:0.1:2*pi;
[x,y]=meshgrid(x);
z=sin(y).*cos(x);
plot3(x,y,z);
xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');
title('plot3-1');grid;
程序運行結果分別如上圖所看到的。從圖中可以發現,網格圖(mesh)中線條有顏色,線條間補面無顏色。曲面圖(surf)的線條都是黑色的,線條間補面有顏色。進一步觀察,曲面圖補面顏色和網格圖線條顏色都是沿z軸變化的。用plot3 繪製的三維曲面實際上由三維曲線組合而成。可以分析plot(x’,y’,z’)所繪製的曲面的特徵。
例516 繪製兩個直徑相等的圓管相交的圖形。
m=30;
z=1.2*(0:m)/m;
r=ones(size(z));
theta=(0:m)/m*2*pi;
x1=r'*cos(theta);y1=r'*sin(theta);%生成第一個圓管的座標矩陣
z1=z'*ones(1,m+1);
x=(-m:2:m)/m;
x2=x'*ones(1,m+1);y2=r'*cos(theta);%生成第一個圓管的座標矩陣
z2=r'*sin(theta);
surf(x1,y1,z1); %繪製豎立的圓管
axis equal ,axis off
hold on
surf(x2,y2,z2); %繪製平放的圓管
axis equal ,axis off
title ('兩個等直徑圓管的交線');
hold off
例517 分析由函數 構成的曲面形狀與平面z=a的交線。
此外,還有兩個和mesh函數相似的函數,即帶等高線的三維網格曲面函數meshc和帶底座的三維網格曲面函數meshz,其使用方法和mesh相似。不一樣的是,meshc還在xy平面上繪製曲面在z軸方向的等高線,meshz還在xy平面上繪製曲面的底座。
surf函數也有兩個相似的函數,即具備等高線的曲面函數surfc和具備光照效果的曲面函數surfl。
例518 在xy平面內選擇[-8, 8]×[-8, 8]繪製函數,
[x,y]=meshgrid(-8:0.5:8);
z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);
subplot(2,2,1);
meshc(x,y,z);
title('meshc');
subplot(2,2,2);
meshz(x,y,z);
title('meshz');
subplot(2,2,3);
surfc(x,y,z);
title('surfc');
subplot(2,2,4);
surfl(x,y,z);
title('surfl');
3.標準三維曲面
Matlab提供了一些函數用於繪製標準三維曲面,這些函數可以產生相應的畫圖數據,經常使用於三維圖形的演示。如,sphere函數和cylinder函數分別用於繪製三維球面和柱面。sphere函數的調用格式爲:
[x,y,z]=sphere(n);
該函數將產生(n+1)×(n+1矩陣x,y,z 。採用這三個矩陣可以繪製出圓心位於原點、半徑爲1的單位球體。若在調用該函數時不帶輸出參數,則直接繪製所需球面。n決定了球面的圓滑程度,其默認值爲20。若n值取的比較小,則繪製出多面體的表面圖。
cylinder函數的調用格式爲:
[x,y,z]=cylinder(R,n)
當中R是一個向量,存放柱面各個等間隔高度上的半徑,n表示在圓柱圓周上有n個間隔點,默認有20個間隔點。如:cylinder(3)生成一個圓柱,cylinder([10,1])生成一個圓錐。而t=0:pi/100:4*pi; R=sin(t); cylinder(R,30);生成一個正弦圓柱面。
另外Matlab還提供了一個peaks函數,稱爲多峯函數,經常使用於三維曲面的演示。該函數可以用來生成畫圖數據矩陣,矩陣元素由函數:
在矩形區域[-3 3]×[-3 3]的等分網格點上的函數值肯定。如:z=peaks(30)
將生成一個30×30矩陣,
例519 繪製標準三維曲面圖形
t=0:pi/20:2*pi;
[x,y,z]=cylinder(2+sin(t),30);
subplot(1,3,1);
surf(x,y,z);
subplot(1,3,2);
[x,y,z]=sphere;
surf(x,y,z);
subplot(1,3,3);
[x,y,z]=peaks(30);
meshz(x,y,z);
3.其它三維圖形。
在介紹二維圖形時,之前提到條形圖、杆圖、餅圖和填充圖等特殊圖形,它們還可以以三維形式出現,其函數分別爲bar3,stem3,pie3和fill3。
bar3繪製三維條形圖,經常使用格式爲:
bar3(y);
bar3(x,y)
在第一種格式中,y的每一個元素相應於一個條形。另一種格式在x指定的位置上繪製y中元素的條形圖。
stem3函數繪製離散序列數據的三維杆圖,經常使用格式爲:
stem3(z)
stem3(x,y,z)
第一種格式將數據序列z表示爲從xy平面向上延伸的杆圖,x和y本身主動生成。另一種格式在x和y指定的位置上繪製數據序列z的杆圖,x,y,z的維數要一樣。
pie3函數繪製三維餅圖,經常使用格式爲:
pie3(x)
x爲向量,用x中的數據繪製一個三維餅圖。
fill3函數可在三維空間內繪製出填充過的多邊形,經常使用格式爲:
fill3(x,y,z,c)
用x,y,z作多邊形的頂點,而c指定了填充的顏色。
例520 繪製三維圖形。
1繪製魔方陣的三維條形圖2以三維杆圖形式繪製曲線y=2sinx 3已知x =[2347,1827,2043,3025] ,繪製三維餅圖 4用隨機的頂點座標值畫出5個黃色三角形
subplot(2,2,1);
bar3(magic(4));
subplot(2,2,2);
y=2*sin(0:pi/10:2*pi);
stem3(y);
subplot(2,2,3);
pie3([2347,1827,2043,3025]);
subplot(2,2,4);
fill3(rand(3,5),rand(3,5),rand(3,5),'y');
除了上面討論的三維圖形外,經常使用的圖形還有瀑布圖和三維曲面的等高線圖。繪製瀑布圖用waterfall函數,使用方法和meshz函數相似,僅僅是它的網格線在x軸方向出現,具備瀑布效果。等高線圖分二維和三維兩種形式,分別使用函數contour和contour3繪製。
例521 繪製多峯函數的瀑布圖和等高線圖。
subplot(1,2,1);
[X,Y,Z]=peaks(30);
waterfall(X,Y,Z);
xlabel('XX');ylabel('YY');zlabel('ZZ');
subplot(1,2,2);
contour3(X,Y,Z,12,'k');%當中12表明高度的等級數
xlabel('XX');ylabel('YY');zlabel('ZZ');
三.三維圖形的精細處理
一.視點處理
在平常生活中,從不一樣的角度觀察物體,所看到的物體形狀是不同的。一樣,從不一樣視點繪製的三維圖形的形狀也是不同的。視點位置可由方位角和仰角表示。
方位角
Matlab提供了設置視點的函數view,其調用格式爲:
view(az,el)
當中az爲方位角,el爲仰角,它們均以度爲單位。系統默認的視點定義爲方位角爲-37.5度,仰角30度。
例522 從不一樣視點繪製多峯函數曲面。
subplot(2,2,1);mesh(peaks);
view(-37.5,30);
title('1');
subplot(2,2,2);mesh(peaks);
view(0,90);
title('2');
subplot(2,2,3);mesh(peaks);
view(90,0);
title('3');
subplot(2,2,4);mesh(peaks);
view(-7,-10);
title('4');
二.色彩處理
三.圖形的裁剪處理
Matlab定義的NaN常數可以用於表示那些不可以使用的數據,利用這些特性,可以將圖形中需要裁剪部分相應的函數值設置成NaN,這樣在繪製圖形時,函數值爲NaN的部分將不顯示出來,從而達到對圖形進行裁剪的目的。好比,要削掉正弦波頂部或底部大於0.5的部分,可以使用如下的程序。
x=0:pi/10:4*pi;
y=sin(x);
i=find(abs(y)>0.5);
x(i)=NaN;
plot(x,y);
例524 繪製兩個球面,當中一個在還有一個裏面,將外面的球裁掉一部分,以便能看到裏面的球。
[x,y,z]=sphere(25);
%生成外面的大球
z1=z;
z1(:,1:4)=NaN;%將大球裁去一部分
c1=ones(size(z1));
surf(3*x,3*y,3*z1,c1); %生成裏面的小球
hold on
z2=z;
c2=2*ones(size(z2));
c2(:,1:4)=3*ones(size(c2(:,1:4)));
surf(1.5*x,1.5*y,1.5*z2,c2);
colormap([0 1 0;0.5 0 0;1 0 0]);
grid on
hold off
色圖中使用三種顏色,外面的球是綠色,裏面的球採用深淺不一樣的兩種紅色。
四.隱函數做圖
假設給定了函數的顯式表達式,可以先設置自變量向量,而後依據表達式計算函數向量,從而用plot等函數繪製出圖形。但是當函數採用隱函數形式時,如: ,則很是難利用上述方法繪製圖形。Matlab提供了一個ezplot函數繪製隱函數圖形。使用方法例如如下:
① 對於函數f=f(x),ezplot的調用格式爲:
ezplot(f),在默認區間(-2pi,2pi)繪製圖形。
ezplot(f,[a,b]),在區間(a,b)繪製
② 對於隱函數f=f(x,y),ezplot的調用格式爲;
ezplot(f),在默認區間(-2pi,2pi),(-2pi,2pi)繪製f(x,y)=0的圖形。
ezplot(f,[xmin,xmax,ymin,ymax]);在區間 繪製圖形。
ezplot(f,[a,b]),在區間(a,b),(a,b)繪製
③ 對於參數方程x=x(t),y=y(t),ezplot函數的調用格式爲:
ezplot(x,y),在默認區間 繪製x=x(t),y=y(t)圖形。
ezplot(x,y,[tmin,tmax]),在區間(tmin,tmax)繪製x=x(t),y=y(t)圖形。
例525 隱函數畫圖舉例。
subplot(2,2,1);
ezplot('x^2+y^2-9');axis equal;
subplot(2,2,2);
ezplot('x^3+y^3-5*x*y+1/5')
subplot(2,2,3);
ezplot('cos(tan(pi*x))',[0,1]);
subplot(2,2,4);
ezplot('8*cos(t)','4*sqrt(2)*sin(t)',[0,2*pi]);
其它隱函數畫圖還有,ezpolar,ezcontour,ezplot3,ezmesh,ezmeshc,ezsurf,ezsurfc。