MATLAB繪圖

来源:https://www.cnblogs.com/liuyaanng/archive/2018/08/19/9503168.html
-Advertisement-
Play Games

Matlab繪圖 強大的繪圖功能是Matlab的特點之一,Matlab提供了一系列的繪圖函數,用戶不需要過多的考慮繪圖的細節,只需要給出一些基本參數就能得到所需圖形,這類函數稱為高層繪圖函數。此外,Matlab還提供了直接對圖形句柄進行操作的低層繪圖操作。這類操作將圖形的每個圖形元素(如坐標軸、曲線 ...


Matlab繪圖

強大的繪圖功能是Matlab的特點之一,Matlab提供了一系列的繪圖函數,用戶不需要過多的考慮繪圖的細節,只需要給出一些基本參數就能得到所需圖形,這類函數稱為高層繪圖函數。此外,Matlab還提供了直接對圖形句柄進行操作的低層繪圖操作。這類操作將圖形的每個圖形元素(如坐標軸、曲線、文字等)看做一個獨立的對象,系統給每個對象分配一個句柄,可以通過句柄對該圖形元素進行操作,而不影響其他部分。

本章介紹繪製二維和三維圖形的高層繪圖函數以及其他圖形控制函數的使用方法,在此基礎上,再介紹可以操作和控制各種圖形對象的低層繪圖操作。

一.二維繪圖

二維圖形是將平面坐標上的數據點連接起來的平面圖形。可以採用不同的坐標系,如直角坐標、對數坐標、極坐標等。二維圖形的繪製是其他繪圖操作的基礎。

一.繪製二維曲線的基本函數

在Matlab中,最基本而且應用最為廣泛的繪圖函數為plot,利用它可以在二維平面上繪製出不同的曲線。

1. plot函數的基本用法

plot函數用於繪製二維平面上的線性坐標曲線圖,要提供一組x坐標和對應的y坐標,可以繪製分別以x和y為橫、縱坐標的二維曲線。plot函數的應用格式

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})’)

將得到標註效果 。

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。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本文主要講解靜態代理,動態代理的原理,以及如何使用JDK動態代理,cglib動態代理,最後帶大家手寫jdk動態代理源碼!真正理解動態代理的原理與技術!含Git完整項目地址! ...
  • 詳情戳擊下方鏈接 Python之進程、線程、協程 python之IO多路復用 ...
  • 數據類型 由於學習過其他編程語言(C/C++/java),所以記錄的話除了一些差異點和遇到的問題,儘可能的簡潔,以達到最佳的記錄作用,方便以後的複習和形成體系。 1.數字類型 包括integer,long,float,complex(複雜整數)等,統稱number,而且不用特殊聲明。 特殊類型:布爾 ...
  • 方式一:修改server.xml文件 優點: 配置速度快,只需要在server.xml文件中添加<Context>標簽,在其中分別配置path虛擬路徑和docBase真實路徑然後啟動Tomcat伺服器即可 缺點: 需要配置兩個路徑,如果path為空字元串,則為預設配置 每次修改server.xml文 ...
  • 1.前提條件 相比較於支付寶和微信的支付功能接入這一塊,銀行相對來說更加嚴格,比如說支付寶,在你簽約之前可以進行一些測試。但是銀行來說就不是這樣了,如果您現在要進行招行的支付功能開發的話,請務必先讓相關人員去進行簽約 2. 測試開發必須條件 進行測試開發之前有幾個比較重要的東西是不可避免的,我們來看 ...
  • 這兩天翻了一下機器學習實戰這本書,演算法是不錯,只是代碼不夠友好,作者是個搞演算法的,這點從代碼上就能看出來。可是有些地方使用numpy搞數組,搞矩陣,總是感覺怪怪的,一個是需要使用三方包numpy,雖然這個包基本可以說必備了,可是對於一些新手,連pip都用不好,裝的numpy也是各種問題,所以說能不用 ...
  • ORACLE公司傳奇 ORACLE公司之起源 很難想象,ORACLE 公司的這一段傳奇居然要從 IBM 公司開始。 1970年的6月,IBM 公司的研究員埃德加·考特 (Edgar Frank Codd) 在 Communications of ACM 上發表了那篇著名的《大型共用資料庫數據的關係模 ...
  • 今天發現了智障的真我。 剛入門flask,建了一個文件命名叫flask.py 在virtualenv的容器里運行該py文件,報錯cannot import name 'Flask' from 'flask'。 這是因為它導入的模塊不是我用pip安裝那個,而是自己這個自定義模塊flask.py,首先去 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...