日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MATALB(三)绘图命令

發布時間:2024/7/23 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MATALB(三)绘图命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

繪圖命令

(一)二維繪圖命令

二維繪圖的基本命令有plot,loglog,semilogx,semilogy和polar。它們的使用方法基本相同,其不同點是在不同的坐標中繪制圖形。

plot命令使用線性坐標空間繪制圖形;

loglog命令在兩個對數坐標空間中繪制圖形;

而semilogx(或semilogy)命令使用x軸(或y軸)為對數刻度,另外一個軸為線性刻度的坐標空間繪制圖形;

polar使用極坐標空間繪制圖形。

二維繪圖命令plot為了適應各種繪圖需要,提供了用于控制線色、數據點和線型的3個基本參數。它的使用格式如下:

plot(x, y, 'color_point_linestyle')

該命令是繪制y對應x的軌跡的命令。y與x均為向量,且具有相同的元素個數。用字符串'color_point_linestyle'完成對上面3個參數的設置。

線色(r-red,g-green, b-blue,w-white,k-balck,i-invisible,y-yellow)

數據點(.,o,x,+,*,S,H,D,V,^,>,<,p)

線型(-,-.,--,:)

都可以根據需要適當選擇。

當plot(x, y)中的x和y均為mxn矩陣時,plot命令將繪制n條曲線。

如果多重曲線對應不同的向量繪制,可使用命令

plot(t1, x1, t2, x2, t3, x3)

其中:x1對應t1;x2對應t2;等等。在這種情況下,t1,t2和t3可以具有不同的元素個數,但要求x1、x2和x3必須分別與t1、t2和t3具有相同的元素個數。

也可以使用另外一種形式,將多張圖在一張圖上顯示。

x = [0:0.5:7] y1 = sin(x) y2 = cos(x) y3 = (1/2)*x-0.5 hold on plot(x, y1) plot(x, y2) plot(x, y3) hold off

plot(x, y1, 'r', x, y2, 'g', x, y3, 'b')

subplot命令使得在一個屏幕上可以分開顯示n個不同坐標系,且可分別在每一個坐標系中繪制曲線。其命令格式如下:

subplot(r,c,p)

該命令將屏幕分成r x c個子窗口,而p表示激活第p個子窗口。窗口的排號是從左到右,自上而下。

subplot(2, 3, 2) subplot(2, 3, 3) subplot(2, 3, 4)

在圖形繪制完畢后,執行如下命令可以再在圖中加入標題、標號、說明和分格線等。

這些命令有title,xlabel,ylabel,text,gtext等。它們的命令格式如下:

title('My Title') xlabel('My X-axis Label') ylabel('My Y-axis Label') text(x, y,'Text for annotation') gtext('Text for annotation') grid

gtext命令是使用鼠標定位的文字注釋命令。當輸入命令后,可以在屏幕上得到一個光標,然后使用鼠標控制 它的位置。單擊鼠標左鍵,即可確定文字設定的位置。

hold on是圖形保持命令,可以把當前圖形保持在屏幕上不變,同時在這個坐標系內繪制另一個圖形。hold命令是一個交替轉換命令,即執行一次,轉變一個狀態(相當于hold on,hold off)

y = x subplot(2, 3, 2) title('my data1') xlabel('my data xlabel') ylabel('my data ylabel') text(x, y,'data') gtext('data symbol') grid


(二)顯函數、符號函數或隱函數的繪圖

fplot(fun,lims)繪制由字符串fun指定函數名的函數在x軸區間為lims=[xmin, xmax]的函數圖。若lims=[xmin, xmax, ymin, ymax],則y軸也被限制。

例1:


function y = Afun1(x); if x<1y = x + 1; elsey = 1+ 1/x; end

然后在命令窗口輸入

>> fplot('Afun1', [-3, 3])

就可以畫出函數f(x)的圖形。


也可以使用匿名函數:

>> Afun1 = @(x) (x + 1)*(x < 1) + (1 + 1/x)*(x >= 1); >> fplot(Afun1, [-3, 3]) >> ezplot(Afun1)%函數Afun1的圖形,橫軸的近似范圍為[-2π,2π],也可以使用參數來代替默認的參數

例2

>> ezplot('x^2 + (y^2)/4 = 1')

(三)三維圖形

在實際工程計算中,最常用的三維繪圖是三維曲線圖、三維網格圖和三維曲面圖3中基本類型。與此對應,Matlab也提供了一些三維基本繪圖命令,如三維曲線命令plot3,三維網格圖命令mesh和三維表面圖命令surf。

1.三維曲線

plot3(x, y, z)通過描點連線畫出曲線,這里x,y,z都是n維向量,分別表示該曲線上點集的橫坐標、縱坐標、豎坐標。

例3

在區間[0, 10π]畫出參數曲線x=sint,y=cost,z=t,并分別標注。

t = 0:pi/50:10*pi; plot3(sin(t), cos(t), t) xlabel('sin(t)'), ylabel('cos(t)'), zlabel('t')

2.網格圖

命令mesh(x, y, z)畫網格曲面,這里x,y,z是三個同維數的數據矩陣,分別表示數據點的橫坐標、縱坐標、豎坐標,命令mesh(x, y, z)將該數據點在空間中描出,并連成網格。

例4

x = -3:0.1:3; y = -5:0.1:5; [x, y] = meshgrid(x, y); %生成網格數據 z = (sin(x.*y) + eps)./(x.*y + eps); mesh(x, y, z)

3.表面圖

命令surf(x, y, z)畫三維表面圖,這里x,y,z是三個同維數的數據矩陣,分別表示數據點的橫坐標、縱坐標、豎坐標。

例5

[x, y] = meshgrid([-3:0.2:3]); %生成網格數據 z = (sin(x.*y) + eps)./(x.*y + eps); surf(x, y, z)

4.旋轉曲面

例6

x = 0:10:600; [X, Y, Z] = cylinder(30*exp(-x/400).*sin((x + 25*pi)/100) + 130); surf(X, Y, Z)

例7

畫出x^2 + (y-5)^2= 16繞x軸旋轉一周所形成的旋轉曲面。

解:因為這里的函數是隱函數,化成顯函數后有兩支,必須使用參數方程,旋轉面的參數方程為

x = 4cosα,

y = (5 + 4sinα)cosβ,

z = (5 + 4sinα)sinβ. ? ? 式中:α,β∈[0, 2π]。

alpha = [0:0.1:2*pi]'; beta = 0:0.1:2*pi; x = 4*cos(alpha)*ones(size(beta)); y = (5 + 4*sin(alpha))*cos(beta); z = (5 + 4*sin(alpha))*sin(beta); surf(x, y, z)

也可以使用匿名函數

x = @(alpha, beta) 4*cos(alpha); y = @(alpha, beta) (5 + 4*sin(alpha)).*cos(beta); z = @(alpha, beta) (5 + 4 *sin(alpha)).*sin(beta); ezsurf(x, y, z)

5.其他二次曲面

Matlab中使用繪圖命令ezmesh或ezsurf也很方便,只需要把曲面方程寫成兩個變量的顯函數方程或參數方程即可。

例8

(1)旋轉單葉雙曲面 ?(x^2 + y^2)/9 - (z^2)/4 = 1;
x = @(s, t) 3 *sec(s).*cos(t); y = @(s, t) 3*sec(s).*sin(t); z = @( s, t) 2*tan(s); ezmesh(x, y, z)

(2)旋轉雙葉雙曲面 ? (x^2)/9 - (y^2 + z^2)/4 = 1;
x = @(s, t) 3 *sec(s); y = @(s, t) 2*tan(s).*cos(t); z = @( s, t) 2*tan(s).*sin(t); ezmesh(x, y, z)

(3)拋物柱面 ?y^2 = x;
ezsurf(@(y, z) y.^2, 50)

(4)橢圓錐面 ?(x^2)/9 + (y^2)/4 = z^2;
z = @(s, t) tan(s); x = @(s, t) 3*tan(s).*cos(t); y = @( s, t) 2*tan(s).*sin(t); ezsurf(x, y, z)

(5)橢球面 ?(x^2)/9 + (y^2)/4 + (z^2)/6 = 1;
ellipsoid(0, 0, 0, 3, 2, sqrt( 6))

(6)馬鞍面 ?z = xy;
ezsurf(@(x, y) x.*y)

(7)橢圓柱面 (x^2)/9 + (y^2)/4 = 1;
x = @(s, t) 3*cos(s); y = @( s, t) 2*sin(s); z = @(s, t) t; ezmesh(x, y, z)

(四)3 - D可視化圖形

例9

[x, y, z, v] = flow; isosurface(x, y, z, v);

例10

畫出v = (x^2)*y*(z + 1)的示意圖。

x = 1:20; y = 1:10; z = -10:10; [x, y, z] = meshgrid(x, y, z); v = x.^2.*y.*(z + 1); isosurface(x, y, z, v)


總結

以上是生活随笔為你收集整理的MATALB(三)绘图命令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。