① matlab 中mesh、meshgrid、meshz的作用有什麼不同
用mesh畫三維圖,先要meshgrid,就是將xoy平面用你定義的x,y向量網格化,之後對每一個得到的點求其對應的函數值,最後用mesh將函數圖像做出來,你如果還有不清楚的地方,可以在command window 下敲「doc mesh」或是「doc meshgrid」。
meshz是繪制帶有「圍裙」的網狀圖,只是圖形的視覺效果與mesh不同。
② matlab如何畫三維圖
1、plot3三維曲線圖。
啟動MATLAB,新建腳本(.m文件),在腳本編輯區輸入以下代碼,然後保存運行後,看到三維曲線圖。
close all;clear all;clc
z=linspace(0,10,101);
x=sin(z);y=cos(z);
plot3(x,y,z,'g','LineWidth',2)
hold on
plot3(x,y,z,'p','MarkerSize',10)
其中,linspace(a1,a2,N) 是生成間距為(a2-a1)/(N-1)、個數為N的數組的命令。
③ 誰有MATLAB繪圖大全啊
matlab繪圖大全 一。 二維數據曲線圖1.1 繪制 單根二維曲線 plot 函數的基本調用 格式為: plot(x,y) 其中x和y為長度相同的向量,分別用於存儲x坐標 和y坐標數據。 例1-1 在0≤x≤2p區間內,繪制曲線 y=2e-0.5xcos(4πx)程序 如下:x=0:pi/100:2*pi;y=2*exp(-0.5*x).*cos(4*pi*x);plot(x,y) 例1-2 繪制曲線。 程序如下:t=0:0.1:2*pi;x=t.*sin(3*t);y=t.*sin(t).*sin(t);plot(x,y); plot函數最簡單的調用格式是只包含一個輸入參數 : plot(x)在這種情況下,當x是實向量時,以該向量元素的下標為橫坐標,元素值為縱坐標畫出一條連續曲線,這實際上是繪制折線圖。 1.2 繪制多根二維曲線 1.plot函數的輸入參數是矩陣 形式 (1) 當x是向量,y是有一維與x同維的矩陣時,則繪制出多根不同顏色 的曲線。曲線條數等於y矩陣的另一維數,x被作為這些曲線共同的橫坐標。 (2) 當x,y是同維矩陣時,則以x,y對應列元素為橫、縱坐標分別繪制曲線,曲線條數等於矩陣的列數。 (3) 對只包含一個輸入參數的plot函數,當輸入參數是實矩陣時,則按列繪制每列元素值相對其下標的曲線,曲線條數等於輸入參數矩陣的列數。 當輸入參數是復數矩陣時,則按列分別以元素實部和虛部為橫、縱坐標繪制多條曲線。 2.含多個輸入參數的plot函數 調用格式為:plot(x1,y1,x2,y2,…,xn,yn)(1) 當輸入參數都為向量時,x1和y1,x2和y2,…,xn和yn分別組成一組向量對,每一組向量對的長度可以不同。每一向量對可以繪制出一條曲線,這樣可以在同一坐標內繪制出多條曲線。 (2) 當輸入參數有矩陣形式時,配對的x,y按對應列元素為橫、縱坐標分別繪制曲線,曲線條數等於矩陣的列數。 例1-3 分析下列程序繪制的曲線。 x1=linspace(0,2*pi,100);x2=linspace(0,3*pi,100);x3=linspace(0,4*pi,100);y1=sin(x1);y2=1+sin(x2);y3=2+sin(x3);x=[x1;x2;x3]';y=[y1;y2;y3]';plot(x,y,x1,y1-1) 3.具有兩個縱坐標標度的圖形 在MATLAB中,如果需要繪制出具有不同縱坐標標度的兩個圖形,可以使用plotyy繪圖函數。調用格式為: plotyy(x1,y1,x2,y2)其中x1,y1對應一條曲線,x2,y2對應另一條曲線。橫坐標的標度相同,縱坐標有兩個,左縱坐標用於x1,y1數據對,右縱坐標用於x2,y2數據對。 例1-4 用不同標度在同一坐標內繪制曲線y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx)。 程序如下:x=0:pi/100:2*pi;y1=0.2*exp(-0.5*x).*cos(4*pi*x);y2=2*exp(-0.5*x).*cos(pi*x);plotyy(x,y1,x,y2); 4.圖形保持 hold on/off命令 控制 是保持原有圖形還是刷新原有圖形,不帶參數的hold命令在兩種狀態之間進行切換。 例1-5 採用圖形保持,在同一坐標內繪制曲線y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx)。 程序如下:x=0:pi/100:2*pi;y1=0.2*exp(-0.5*x).*cos(4*pi*x);plot(x,y1)hold ony2=2*exp(-0.5*x).*cos(pi*x);plot(x,y2);hold off 1.3 設置曲線樣式 MATLAB提供了一些繪圖選項,用於確定所繪曲線的線型、顏色和數據點標記符號,它們可以組合使用。例如,「b-.」表示藍色點劃線,「y:d」表示黃色虛線並用菱形符標記數據點。當選項省略時,MATLAB規定,線型一律用實線,顏色將根據曲線的先後順序依次。 要設置曲線樣式可以在plot函數中加繪圖選項,其調用格式為: plot(x1,y1,選項1,x2,y2,選項2,…,xn,yn,選項n) 例1-6 在同一坐標內,分別用不同線型和顏色繪制曲線y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx),標記兩曲線交叉點。 程序如下:x=linspace(0,2*pi,1000);y1=0.2*exp(-0.5*x).*cos(4*pi*x);y2=2*exp(-0.5*x).*cos(pi*x);k=find(abs(y1-y2)<1e-2); %查找y1與y2相等點(近似相等)的下標 x1=x(k); %取y1與y2相等點的x坐標 y3=0.2*exp(-0.5*x1).*cos(4*pi*x1); %求y1與y2值相等點的y坐標 plot(x,y1,x,y2,'k:',x1,y3,'bp'); 1.4 圖形標注與坐標控制 1.圖形標注 有關圖形標注函數的調用格式為:title(圖形名稱) xlabel(x軸說明) ylabel(y軸說明) text (x,y,圖形說明) legend(圖例1,圖例2,…) 函數中的說明文字,除使用標準的ASCII字元外,還可使用LaTeX格式的控制字元,這樣就可以在圖形上添加希臘字母、數學符號及公式等內容。例如,text(0.3,0.5,『sin({\omega}t+{\beta})』)將得到標注效果sin(ωt+β)。 例1-7 在0≤x≤2p區間內,繪制曲線y1=2e-0.5x和y2=cos(4πx),並給圖形添加圖形標注。 程序如下:x=0:pi/100:2*pi;y1=2*exp(-0.5*x);y2=cos(4*pi*x);plot(x,y1,x,y2)title('x from 0 to 2{\pi}'); %加圖形標題 xlabel('Variable X'); %加X軸說明 ylabel('Variable Y'); %加Y軸說明 text(0.8,1.5,'曲線y1=2e^{-0.5x}'); %在指定位置添加圖形說明 text(2.5,1.1,'曲線y2=cos(4{\pi}x)'); legend(『y1』,『 y2』) %加圖例 2.坐標控制 axis函數 的調用格式為: axis([xmin xmax ymin ymax zmin zmax])axis函數功能豐富,常用的格式還有: axis equal:縱、橫坐標軸採用等長刻度。 axis square:產生正方形坐標系(預設為矩形)。 axis auto:使用預設設置。 axis off:取消坐標軸。 axis on:顯示 坐標軸。 給坐標加網格線用grid命令來控制。grid on/off命令控制是畫還是不畫網格線,不帶參數的grid命令在兩種狀態之間進行切換。 給坐標加邊框用box命令來控制。box on/off命令控制是加還是不加邊框線,不帶參數的box命令在兩種狀態之間進行切換。 例1-8 在同一坐標中,可以繪制3個同心圓,並加坐標控制。 程序如下:t=0:0.01:2*pi;x=exp(i*t);y=[x;2*x;3*x]';plot(y)grid on; %加網格線 box on; %加坐標邊框 axis equal %坐標軸採用等刻度 1.5 圖形的可視化編輯 MATLAB 6.5版本在圖形窗口中提供了可視化的圖形編輯工具,利用圖形窗口菜單欄或工具欄中的有關命令可以完成對窗口中各種圖形對象的編輯處理。 在圖形窗口上有一個菜單欄和工具欄。菜單欄包含File、Edit、View、Insert、Tools、Window和Help共7個菜單項,工具欄包含11個命令按鈕。 1.6 對函數自適應采樣的繪圖函數 fplot函數的調用格式為: fplot(fname,lims,tol,選項) 其中fname為函數名,以字元串形式出現,lims為x,y的取值范圍,tol為相對允許誤差,其系統 默認值為2e-3。選項定義與plot函數相同。 例1-9 用fplot函數繪制f(x)=cos(tan(πx))的曲線。 命令如下:fplot('cos(tan(pi*x))',[ 0,1],1e-4) 1.7 圖形窗口的分割 subplot函數的調用格式為: subplot(m,n,p)該函數將當前圖形窗口分成m×n個繪圖區,即每行n個,共m行,區號按行優先編號,且選定第p個區為當前活動區。在每一個繪圖區允許以不同的坐標系單獨繪制圖形。 例5-10 在圖形窗口中,以子圖形式同時繪制多根曲線。 二。 其他二維圖形2.1 其他坐標系下的二維數據曲線圖 1.對數坐標圖形 MATLAB提供了繪制對數和半對數坐標曲線的函數,調用格式為: semilogx(x1,y1,選項1,x2,y2,選項2,…) semilogy(x1,y1,選項1,x2,y2,選項2,…) loglog(x1,y1,選項1,x2,y2,選項2,…) 2.極坐標圖 polar函數用來繪制極坐標圖,其調用格式為: polar(theta,rho,選項) 其中theta為極坐標極角,rho為極坐標矢徑,選項的內容與plot函數相似。 例1-12 繪制r=sin(t)cos(t)的極坐標圖,並標記數據點。 程序如下:t=0:pi/50:2*pi;r=sin(t).*cos(t);polar(t,r,'-*'); 2.2 二維統計分析圖 在MATLAB中,二維統計分析圖形很多,常見的有條形圖、階梯圖、桿圖和填充圖等,所採用的函數分別是: bar(x,y,選項) stairs(x,y,選項) stem(x,y,選項) fill(x1,y1,選項1,x2,y2,選項2,…) 例1-13 分別以條形圖、階梯圖、桿圖和填充圖形式繪制曲線y=2sin(x)。 程序如下:x=0:pi/10:2*pi;y=2*sin(x);subplot(2,2,1);bar(x,y,'g');title('bar(x,y,''g'')');axis([0,7,-2,2]);subplot(2,2,2);stairs(x,y,'b');title('stairs(x,y,''b'')');axis([0,7,-2,2]);subplot(2,2,3);stem(x,y,'k');title('stem(x,y,''k'')');axis([0,7,-2,2]);subplot(2,2,4);fill(x,y,'y');title('fill(x,y,''y'')');axis([0,7,-2,2]); MATLAB提供的統計分析繪圖函數還有很多,例如,用來表示各元素占總和的百分比的餅圖、復數的相量圖等等。 例1-14 繪制圖形: (1) 某企業全年各季度的產值(單位:萬元)分別為:2347,1827,2043,3025,試用餅圖作統計分析。 (2) 繪制復數的相量圖:7+2.9i、2-3i和-1.5-6i。 程序如下:subplot(1,2,1);pie([2347,1827,2043,3025]);title('餅圖'); legend('一季度','二季度','三季度','四季度'); subplot(1,2,2);compass([7+2.9i,2-3i,-1.5-6i]);title('相量圖'); 三。 隱函數繪圖MATLAB提供了一個ezplot函數繪制隱函數圖形,下面介紹其用法。 (1) 對於函數f = f(x),ezplot函數的調用格式為: ezplot(f):在默認區間-2π<x<2π繪制f = f(x)的圖形。 ezplot(f, [a,b]):在區間a<x<b繪制f = f(x)的圖形。 (2) 對於隱函數f = f(x,y),ezplot函數的調用格式為: ezplot(f):在默認區間-2π<x<2π和-2π<y<2π繪制f(x,y) = 0的圖形。 ezplot(f, [xmin,xmax,ymin,ymax]):在區間xmin<x<xmax和ymin<y<ymax繪制f(x,y) = 0的圖形。 ezplot(f, [a,b]):在區間a<x<b和a<y< b繪制f(x,y) = 0的圖形。 (3) 對於參數方程 x = x(t)和y = y(t),ezplot函數的調用格式為: ezplot(x,y):在默認區間0<t<2π繪制x=x(t)和y=y(t)的圖形。 ezplot(x,y, [tmin,tmax]):在區間tmin < t < tmax繪制x=x(t)和y=y(t)的圖形。 例1-15 隱函數繪圖應用 舉例。 程序如下:subplot(2,2,1);ezplot('x^2+y^2-9');axis equalsubplot(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]) 四。三維圖形4.1 三維曲線 plot3函數與plot函數用法十分相似,其調用格式為: plot3(x1,y1,z1,選項1,x2,y2,z2,選項2,…,xn,yn,zn,選項n) 其中每一組x,y,z組成一組曲線的坐標參數,選項的定義和plot函數相同。當x,y,z是同維向量時,則x,y,z 對應元素構成一條三維曲線。當x,y,z是同維矩陣時,則以x,y,z對應列元素繪制三維曲線,曲線條數等於矩陣列數。 例1-16 繪制三維曲線。 程序如下:t=0:pi/100:20*pi;x=sin(t);y=cos(t);z=t.*sin(t).*cos(t);plot3(x,y,z);title('Line in 3-D Space');xlabel('X');ylabel('Y');zlabel('Z');grid on; 4.2 三維曲面 1.產生三維數據 在MATLAB中,利用meshgrid函數產生平面區域內的網格坐標矩陣。其格式為: x=a:d1:b; y=c:d2:d;[X,Y]=meshgrid(x,y);語句執行後,矩陣X的每一行都是向量x,行數等於向量y的元素的個數,矩陣Y的每一列都是向量y,列數等於向量x的元素的個數。 2.繪制三維曲面的函數 surf函數和mesh函數的調用格式為: mesh(x,y,z,c)surf(x,y,z,c)一般情況下,x,y,z是維數相同的矩陣。x,y是網格坐標矩陣,z是網格點上的高度矩陣,c用於指定在不同高度下的顏色范圍。 例1-17 繪制三維曲面圖z=sin(x+sin(y))-x/10。 程序如下:[x,y]=meshgrid(0:0.25:4*pi);z=sin(x+sin(y))-x/10;mesh(x,y,z);axis([0 4*pi 0 4*pi -2.5 1]);此外,還有帶等高線的三維網格曲面函數meshc和帶底座的三維網格曲面函數meshz。其用法與mesh類似,不同的是meshc還在xy平面上繪制曲面在z軸方向的等高線,meshz還在xy平面上繪制曲面的底座。 例1-18 在xy平面內選擇區域[-8,8]×[-8,8],繪制4種三維曲面圖。 程序如下:[x,y]=meshgrid(-8:0.5:8);z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);subplot(2,2,1);mesh(x,y,z);title('mesh(x,y,z)')subplot(2,2,2);meshc(x,y,z);title('meshc(x,y,z)')subplot(2,2,3);meshz(x,y,z)title('meshz(x,y,z)')subplot(2,2,4);surf(x,y,z);title('surf(x,y,z)') 3.標准三維曲面 sphere函數的調用格式為: [x,y,z]=sphere(n)cylinder函數的調用格式為: [x,y,z]= cylinder(R,n)MATLAB還有一個peaks 函數,稱為多峰函數,常用於三維曲面的演示。 <!--[if !supportEmptyParas]--> <!--[endif]-->例1-19 繪制標准三維曲面圖形。 程序如下:t=0:pi/20:2*pi;[x,y,z]= cylinder(2+sin(t),30);subplot(2,2,1);surf(x,y,z);subplot(2,2,2);[x,y,z]=sphere;surf(x,y,z);subplot(2,1,2);[x,y,z]=peaks(30); surf(x,y,z);<!--[if !supportEmptyParas]--> <!--[endif]-->4.3 其他三維圖形 在介紹二維圖形時,曾提到條形圖、桿圖、餅圖和填充圖等特殊圖形,它們還可以以三維形式出現,使用的函數分別是bar3、stem3、pie3 和fill3。 bar3函數繪制三維條形圖,常用格式為: bar3(y)bar3(x,y) stem3函數繪制離散序列數據的三維桿圖,常用格式為: stem3(z)stem3(x,y,z)pie3函數繪制三維餅圖,常用格式為: pie3(x)fill3函數等效於三維函數fill,可在三維空間內繪制出填充過的多邊形,常用格式為: fill3(x,y,z,c)<!--[if !supportEmptyParas]--> <!--[endif]-->例1-20 繪制三維圖形: (1) 繪制魔方陣的三維條形圖。 (2) 以三維桿圖形式繪制曲線y=2sin(x)。 (3) 已知x=[2347,1827,2043,3025],繪制餅圖。 (4) 用隨機的頂點坐標值畫出五個黃色三角形。 程序如下: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' ) 例1-21 繪制多峰函數的瀑布圖和等高線圖。 程序如下:subplot(1,2,1);[X,Y,Z]=peaks(30);waterfall(X,Y,Z)xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis');subplot(1,2,2);contour3(X,Y,Z,12,'k'); %其中12代表高度的等級數 xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis');<!--[if !supportEmptyParas]--> 五。 圖形修飾處理5.1 視點處理 MATLAB提供了設置視點的函數view,其調用格式為: view(az,el)其中az為方位角,el為仰角,它們均以度為單位。系統預設的視點定義為方位角-37.5°,仰角30°。 例5-22 從不同視點觀察三維曲線。 5.2 色彩處理 1.顏色的向量表示 MATLAB除用字元表示顏色外,還可以用含有3個元素的向量表示顏色。向量元素在[0,1]范圍取值,3個元素分別表示紅、綠、藍3種顏色的相對亮度,稱為RGB三元組。 <!--[if !supportEmptyParas]--> <!--[endif]-->2.色圖 色圖(Color map)是MATLAB系統引入的概念。在MATLAB中,每個圖形窗口只能有一個色圖。色圖是m×3 的數值矩陣,它的每一行是RGB三元組。色圖矩陣可以人為地生成,也可以調用MATLAB提供的函數來定義色圖矩陣。 3.三維表面圖形的著色 三維表面圖實際上就是在網格圖的每一個網格片上塗上顏色。surf函數用預設的著色方式對網格片著色。除此之外,還可以用shading命令來改變著色方式。 shading faceted命令將每個網格片用其高度對應的顏色進行著色,但網格線仍保留著,其顏色是黑色。這是系統的預設著色方式。 shading flat命令將每個網格片用同一個顏色進行著色,且網格線也用相應的顏色,從而使得圖形表面顯得更加光滑。 shading interp命令在網格片內採用顏色插值處理,得出的表面圖顯得最光滑。 例1-23 3種圖形著色方式的效果展示。 程序如下:[x,y,z]=sphere(20);colormap(copper);subplot(1,3,1);surf(x,y,z);axis equalsubplot(1,3,2);surf(x,y,z);shading flat;axis equalsubplot(1,3,3);surf(x,y,z);shading interp;axis equal 5.3 光照處理 MATLAB提供了燈光設置的函數,其調用格式為: light('Color',選項1,'Style',選項2,'Position',選項3) <!--[if !supportEmptyParas]--> <!--[endif]-->例5-24 光照處理後的球面。 程序如下:[x,y,z]=sphere(20);subplot(1,2,1);surf(x,y,z);axis equal;light('Posi',[0,1,1]);shading interp;hold on;plot3(0,1,1,'p');text(0,1,1,' light');subplot(1,2,2);surf(x,y,z);axis equal;light('Posi',[1,0,1]);shading interp;hold on;plot3(1,0,1,'p');text(1,0,1,' light'); 5.4 圖形的裁剪處理 例5-25 繪制三維曲面圖,並進行插值著色處理,裁掉圖中x和y都小於0部分。 程序如下:[x,y]=meshgrid(-5:0.1:5);z=cos(x).*cos(y).*exp(-sqrt(x.^2+y.^2)/4);surf(x,y,z);shading interp;pause %程序暫停 i=find(x<=0&y<=0);z1=z;z1(i)=NaN;surf(x,y,z1);shading interp;為了展示裁剪效果,第一個曲面繪制完成後暫停,然後顯示裁剪後的曲面。 六。圖像處理 與動畫製作6.1 圖像處理 1.imread和imwrite函數 imread和imwrite函數分別用於將圖像文件 讀入MATLAB工作空間,以及將圖像數據和色圖數據一起寫入一定格式的圖像文件。MATLAB支持多種圖像文件格式,如.bmp、.jpg、.jpeg、.tif等。 2.image和imagesc函數 這兩個函數用於圖像顯示。為了保證圖像的顯示效果,一般還應使用colormap函數設置圖像色圖。 例1-26 有一圖像文件flower.jpg,在圖形窗口顯示該圖像。 程序如下:[x,cmap]=imread('flower.jpg'); %讀取圖像的數據陣和色圖陣 image(x);colormap(cmap);axis image off %保持寬高比並取消坐標軸 6.2 動畫製作 MATLAB提供getframe、moviein和movie函數進行動畫製作。 1.getframe函數 getframe函數可截取一幅畫面信息(稱為動畫中的一幀),一幅畫面信息形成一個很大的列向量。顯然,保存 n幅圖面就需一個大矩陣。 2.moviein函數 moviein(n)函數用來建立一個足夠大的n列矩陣。該矩陣用來保存n幅畫面的數據,以備播放。之所以要事先建立一個大矩陣,是為了提高程序運行 速度。 3.movie函數 movie(m,n)函數播放由矩陣m所定義的畫面n次,預設時播放一次。 例1-27 繪制了peaks函數曲面並且將它繞z軸旋轉。 程序如下[X,Y,Z]=peaks(30); surf(X,Y,Z)axis([-3,3,-3,3,-10,10])axis off;shading interp;colormap(hot);m=moviein(20); %建立一個20列大矩陣 for i=1:20view(-37.5+24*(i-1),30) %改變視點 m(:,i)=getframe; %將圖形保存到m矩陣 end movie(m,2); %播放畫面2次
④ MATLAB7.8.0中繪制三維圖形的函數是哪個
mesh和surf
§4.2 三維作圖
§4.2.1 mesh(Z)語句
mesh(Z)語句可以給出矩陣Z元素的三維消隱圖,網路表面由Z坐標點定義,與前面敘述的x-y平面的線格相同,圖形由鄰近的點連接而成.它可用來顯示用其它方式難以輸出的包含大量數據的大型矩陣,也可用來繪制Z變數函數.
顯示兩變數的函數Z=f(x,y),第一步需產生特定的行和列的x-y矩陣.然後計算函數在各網格點上的值.最後用mesh函數輸出.
下面我們繪制sin(r)/r函數的圖形.建立圖形用以下方法:
x=-8:.5:8;
y=x';
x=ones(size(y))*x;
y=y*ones(size(y))';
R=sqrt(x.^2+y.^2)+eps;
z=sin(R)./R;
mesh(z) %% 試運行 mesh(x,y,z),看看與mesh(z)有什麼不同之處?
各語句的意義是:首先建立行向量x,列向量y;然後按向量的長度建立1-矩陣;用向量乘以產生的1-矩陣,生成網格矩陣,它們的值對應於x-y坐標平面;接下來計算各網格點的半徑;最後計算函數值矩陣Z.用mesh函數即可以得到圖形.
圖4.2.1三維消隱圖
第一條語句x的賦值為定義域,在其上估計函數;第三條語句建立一個重復行的x矩陣,第四條語句產生y的響應,第五條語句產生矩陣R(其元素為各網格點到原點的距離).用mesh方法結果如上.
另外,上述命令系列中的前4行可用以下一條命令替代:
[x, y]=meshgrid(-8:0.5:8)
§4.2.2與mesh相關的幾個函數
(1) meshc與函數mesh的調用方式相同,只是該函數在mesh的基礎上又增加了繪制相應等高線的功能.下面來看一個meshc的例子:
[x,y]=meshgrid([-4:.5:4]);
z=sqrt(x.^2+y.^2);
meshc(z) %% 試運行 meshc(x,y,z),看看與meshc(z)有什麼不同之處?
我們可以得到圖形:
圖4.2.2.1 meshc 圖
地面上的圓圈就是上面圖形的等高線.
(2) 函數meshz與mesh的調用方式也相同,不同的是該函數在mesh函數的作用之上增加了屏蔽作用,即增加了邊界面屏蔽.例如:
[x,y]=meshgrid([-4:.5:4]);
z=sqrt(x.^2+y.^2);
meshz(z) %% 試運行 meshz(x,y,z),看看與meshz(z)有什麼不同之處?
我們得到圖形:
圖4.2.2.2 meshz 圖
§4.2.3 其它的幾個三維繪圖函數
(1) 在Matlab中有一個專門繪制圓球體的函數sphere,其調用格式如下:
[x,y,z]=sphere(n)
此函數生成三個(n+1)×(n+1)階的矩陣,再利用函數surf(x,y,z)可生成單位球面.
[x,y,z]=sphere 此形式使用了默認值n=20
sphere(n) 只繪制球面圖,不返回值.
運行下面程序:
sphere(30);
axis square;
我們得到球體圖形:
圖4.2.3.1 球面圖
若只輸入sphere畫圖,則是默認了n=20的情況.
(2) surf函數也是Matlab中常用的三維繪圖函數.其調用格式如下:
surf(x,y,z,c)
輸入參數的設置與mesh相同,不同的是mesh函數繪制的是一網格圖,而surf繪制的是著色的三維表面.Matlab語言對表面進行著色的方法是,在得到相應網格後,對每一網格依據該網格所代表的節點的色值(由變數c控制),來定義這一網格的顏色.若不輸入c,則默認為c=z.
我們看下面的例子:
%繪制地球表面的氣溫分布示意圖.
[a,b,c]=sphere(40);
t=abs(c); %求絕對值
surf(a,b,c,t);
axis equal
colormap('hot')
我們可以得到圖形如下:
圖4.2.3.2 等溫線示意圖
§4.2.4圖形的控制與修飾
(1) 坐標軸的控制函數axis,調用格式如下:
axis([xmin,xmax,ymin,ymax,zmin,zmax])
用此命令可以控制坐標軸的范圍.
與axis相關的幾條常用命令還有:
axis auto 自動模式,使得圖形的坐標范圍滿足圖中一切圖元素
axis equal 嚴格控制各坐標的分度使其相等
axis square 使繪圖區為正方形
axis on 恢復對坐標軸的一切設置
axis off 取消對坐標軸的一切設置
axis manual 以當前的坐標限制圖形的繪制
(2)grid on 在圖形中繪制坐標網格.
grid off 取消坐標網格.
(3)xlabel, ylabel, zlabel分別為x軸, y軸, z軸添加標注.title為圖形添加標題.
以上函數的調用格式大同小異,我們以xlabel為例進行介紹:
xlabel('標注文本','屬性1','屬性值1','屬性2','屬性值2',…)
這里的屬性是標注文本的屬性,包括字體大小、字體名、字體粗細等.
例如:
[x, y]=meshgrid(-4:.2:4);
R=sqrt(x.^2+y.^2);
z=-cos(R);
mesh(x,y,z)
xlabel('x\in[-4,4]','fontweight','bold');
ylabel('y\in[-4,4]','fontweight','bold');
zlabel('z=-cos(sqrt(x^2+y^2))','fontweight','bold');
title('旋轉曲面','fontsize',15,'fontweight','bold','fontname','隸書');
⑤ matlab中的meshgrid命令怎麼用
下面以墨西哥草帽為例,說明meshgrid命令使用方法。
xi=-10:0.51:10;yi=-10:0.51:10;
[x,y]=meshgrid(xi,yi);
z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2);
mesh(x,y,z);
⑥ 【Matlab的圖形繪制和頻譜計算】+和+【基本信號的表達式】
matlab只能做離散數值計算(符號計算只是小部分),所以繪制上述信號圖形必須抽樣離散化(指定時長,抽樣頻率等),時域圖形可逐點畫出,頻域要做離散FFT後畫出。
根據那奎斯特抽樣定理,抽樣頻率要高於信號中最高頻率的兩倍,才不會失真,因此頻譜中(fs/2,fs)為無用譜,故頻域信號的定義域向量與值域向量都應該做減半處理
以sin(x)為例:
clearall; %
N=1024; %信號的抽樣點數
fs=10; %抽樣頻率,高於信號中最高頻率的2倍
t=(0:N-1)/fs;
f=(0:N-1)*fs/N;
x=sin(2*pi.*t);%待處理信號sin(x)=sin(2πft),f=1hz
y=abs(fft(x)); %FFT後求模
f=f(1:N/2); %減半
y=y(1:N/2); %減半
subplot(2,1,1) %畫圖
plot(t(1:2*fs),x(1:2*fs));%只畫2個周期
subplot(2,1,2) %畫圖
plot(f,y);
⑦ matlab在高數中的應用
解方程,矩陣操作,各種函數求值,微積分,基本你能想到的數學運算都能在matlab中找到相應的解決辦法!
1 概述安裝介紹
略
2 矩陣和數組
2.1 創建特殊矩陣函數
Compan 伴隨矩陣
Diag 對角矩陣
Eye 單位矩陣
Gallery 測試矩陣
Hadamard hadamard矩陣
Hilb hilb矩陣
Invhilb invhilb矩陣
Magic 魔方矩陣
Ones 全一矩陣
Rand 均勻分布隨機矩陣
Randn 正態分布隨機矩陣
Rosser 經典對稱特徵測試矩陣
Wilkinson wilkinson特徵值測試矩陣
Zeros 全零矩陣
註:diag(A,n)以向量A為主對角線為基準偏移n個位置
2.2 矩陣連接
水平 c=[a,b]或者c=[a b]
垂直 c=[a;b]
連接函數
Cat 指定方向
Cat(1,a,b)水平
Cat(2,a。
b)垂直
Horzcat 水平方向
Vertcat 垂直方向
Repmat 對現有矩陣復制粘貼
Blkdiag 以對角陣方式重組
2.3 改變矩陣形狀
Reshape 制定行列重排
Rot90 逆時針90
Filplr 垂直方向為軸旋轉180
Flipud 水平方向為軸旋轉180
Flipdim 指定方向為軸翻轉矩陣
2.4 向量生成函數
Linspace(a,b)首尾為a。
b的100個數
Linspace(a,b,n)
Logspace(a,b)以10為底
Logspace(a。
b,n)
Logspace(a,pi)
2.5 矩陣信息的獲取
Isempty 判斷為空
Isscalar 判斷為標量
Isvector 判斷向量
Issparse 判斷稀疏矩陣
Isa 判斷指定數據類型
Iscell 判斷元胞數組類型
Iscellstr 元胞字元串數組類型
Isfloat 判斷浮點數
Isinteger 判斷整形類型
Islogical 判斷邏輯類型
Isnumeric 判斷數值類型
Isreal 判斷實數類型
Isstruct 判斷結構體類型
Length 最長維長度
Ndims 維數
Numel 元素個數
Size 指定維長度
2.6 高維矩陣
Squeeze 刪除大小為1的維
Flipdim(a,n) 翻轉,第n維為基準
Shiftdim(a,n) 移動數組,前n維到右邊
Permute(a,order)按order向量重排
3 數據類型
3.1 數值類型
復數:i,j等價
無窮:inf,-inf
非數:NaN
0*inf=nan
Isnan判斷非數
3.2 邏輯類型
Ture/false 設置真假
Logical 數值轉換成邏輯
&,|,~。
xor,any。
all 邏輯運算符
&&,|| 短路式運算符
==。
~=,<,>,<=,>= 關系運算符
Strcmp,strncmp,strcmpi,strncmpi字元串比較
3.3 字元與字元串
創建可用到strcat
二維字元數組創建時每行字元列相同
Deblank 提取字元串。
刪除末尾空格
比較函數:Strcmp,strncmp,strcmpi,strncmpi加n的是比較前n個字元,加i的不分大小寫,返回0/1
3.4 元胞
創建:直接賦值方式;cell函數
包含的元素不用()而用{}
Celldisp 顯示具體內容
Cellstr 用於字元串元胞數組
Length 查詢元胞長度
Iscell 判斷是否為元胞類型
Char 元胞數組到字元數組轉變
3.5 構架
構架是帶有域的數組
創建:直接創建;struct函數
4 MATLAB數值運算
4.1 矩陣基本運算
加減簡單
乘法(K*M)*(M*N)才可行
除法分為左除和右除,值不同
求冪 要求方陣
按位運算 .* ./ .\ .^
4.2 關系運算和邏輯運算
關系運算符:> < >= <= == ~=
邏輯運算符:& | && || ~
異或:xor
數位邏輯與:bitand(a,b)
數位邏輯或:bitor(a,b)
數位邏輯非:bitcmp(a,n)
數位異或:bitxor(a。
b)
關系邏輯函數:
Xor(a。
b)異或
Any(a)或
All(a)與
Isaqual(a,b)對應相等為1
Ismember(a。
b)a元素屬於b相應位置為1
4.3 運算符優先順序
略
5 繪圖
5.1 相關函數
管理類:figure、subplot、zoom、hold、view、rotate
生成類:plot、line、stem、polar、fill、plotyy、plot3、surf、surfc、mesh、meshz、contour、contour3、contourf、waterfall、cylinder
注釋和特性類:xlabel、ylabel、zlabel、text、text3、title、legend、box、set、grid、axes、axes equal、axes off、colorbar、clabel、colormap
5.2 基本繪圖指令
Polar 極坐標中畫圓
Polar(t』,r1)若在一個圖中畫幾個圖形用[]分別括起來,如:
[t』 t』],[r1 r2]
線形設計:
線形:- -. -- :
顏色:r g b c m y k w
點標記: o * . x s d h p > < ^ v
多期貨考試資料圖繪制:subplot
雙軸繪圖:plotyy
5.3 圖形標注
函數:title、xlabel、ylabel、zlabel、legend(圖例)、colorbar(色彩條)、annotation(標注元素)
對齊屬性值:
HorizontalAlignment(水平):left、center、right
VerticalAlignment(垂直):middle、top、cap、basline、battom
封閉區間填充:fill(a,b,『c』)在使用之前使用hold命令
5.4 模式化繪圖
柱狀圖:bar或barh其模式有mode、stacked(堆在一個柱中)加引號
面積圖:area
餅圖:pie
直方圖:hist(data,n) n:分割區間數
玫瑰圖:rose(data,n)
離散數據繪圖:stem
階梯圖:stairs
等高線圖:contourf(填充式)
contour(一般式)
標注:colorbar填充,clable普通
羅盤圖:compass
羽毛圖:feather
向量場:quiver
函數繪圖:涉及函數句柄
flplot(fun,limits)
ezplot(fun,[xmin,xmax,ymin,ymax]
ezpolar(fun,[a,b])
ezcontour(fun)
ezcontourf(fun)
5.5 三維繪圖
(1) 數據准備
(2) 繪圖區創建
(3) 繪圖
(4) 設置視角
(5) 設置顏色表
(6) 設置光照效果
(7) 設置坐標軸和比例
(8) 標注圖形
(9) 保存列印或導出
Plot3:曲線
Mesh(X,Y,Z):曲面
Meshc在mesh的基礎畫等高線
Meshz在mesh的基礎上垂直連XY面
Surf(X,Y,Z)
Surfc等高線
Surfl(X,Y,Z,S)加光照效果
曲線旋轉成面:
[X,Y,Z]=cylinder(R,N) N:線的條數
柱狀圖:bar3(data,『mode』)
餅狀圖:pie3
離散點圖:scater3和stem3
向量場圖:quiver3(X,Y,Z,U,V,W,S)其中S為縮放比例
等高線圖:contour3(X,Y,Z,n)
其中n為等高線劃分的條數
函數繪圖:
eplot3(funx,funy,funz,[tmin,tmax])指定范圍的三維曲線
emesh(fun,domain)網線曲面
ezmeshc(fun,domain)帶等高線
ezsurf(fun,domain)填充曲面
ezsurfc(fun,domain)帶等高線
其中domain=[xmin,xmax,ymin,ymax]
顯示控制:
Hidden:設置顯示擋住的實體圖形
Axes:坐標軸比例設置
View:設置視角
著色:加一指示顏色的數組
Colormap:顏色索引范圍的設定
Shading:過渡設置。
其參數有faceted,flat和interp
Light:光照設置,參數有color,style(infinit和local)和position
Lighting:flat,gouraud,phong,off
Material:質感設置,其參數有shiny,ll,(光澤)metal(金屬)
6 圖形對象和句柄
6.1 Matlab圖形對象
最上層:root
圖形窗口:figure,包括軸對象(Axes)和用戶界面對象(UI)等
UI:如按鈕、菜單、工具欄等
Axes:內核對象(core objects)、圖形對象(plot objects)、組對象(group objects)、注釋對象(annotation objects)
內核對象:line,patch,text。
rectangular,surface,image,
light等
繪圖對象:內核的預定義組合
組對象:允許用戶將axes的數個子對象看成一個整體,hggroup和hgtransform兩種
注釋對象:箭頭、文本、文本框、線、矩形等。Plot edit和insert menu添加。
也可用函數annotation
圖形對象屬性:
Busyaction:控制回調函數中斷方式
ButtonDownFcn:單擊按鈕的回調函數
Children:所有子對象的句柄列表
Parent:父對象句柄
CreateFcn:創建對象時執行的回調
DeleteFcn:刪除對象時執行的回調
HitTest:單擊時能否成為當前對象
Interruptible:回調函數是否被中斷
Selected:對象是否被選中
SelectionHighlight:選中是否高亮
Tag:對象標簽
Type:對象類型
UserData:交互數據
Visible:對象是否可見
6.2 MATLAB對象句柄
對象句柄:ID標示的機制,由MATLAB系統分配、唯一的標識對象的double型數值
尋訪:對象句柄唯一對應
指定函數句柄:@和str2func
Get:獲取當前窗口、軸和對象
Gcf:返回當前窗口句柄
Gca:返回當前軸句柄
Gco:返回當前對象句柄
還可以用set函數來設定
Findobj:以屬性值為索引搜索
Copyobj:MATLAB對象的復制
Delete:對象的刪除
6.3 設置和查詢對象屬性
Set(object_handle,』PropertyName』,』NewPropertyValue』)對象屬性的設置
Returned_value=Get(object_handle,』propertyName』)屬性查詢
默認屬性的設置加前綴default
6.4 圖形窗口對象(Figure)
位置屬性:Position
單位屬性:unit,默認pixels(像素)
色彩屬性:
Color:背景色,RGB
Colormap:色彩映像表,(n*3)RGB
FixedColors:線、字元色,RGB
MinColormap:最少色彩,標量
ShareColors:色彩資源能否共享,[{on}|off]
Dithermap:混合色圖,(n*3)RGB
DithermapMode:混合模式,[auto{manual}]
繪制窗口的類型:
BackingStore,DoubleBuffer,Renderer和RendererMode
預定義游標形狀(15種)
自定義游標屬性:
Pointer:custom表示自定義
PointerShapeCData:1黑2白NaN透明
PointerShapeHotSpot:游標熱點
6.5 軸對象(Axes)
位置屬性Position和單位屬性Units
單軸對象常用控制屬性:
XLim,YLim,ZLim:確定軸范圍
XLimMode…:軸范圍模式
XTick…:確定軸刻度位置
XTickMode…:刻度位置模式
XTickLabel…:刻度標記
XTickLabelMode…:刻度標記模
XDir…:軸方向
多軸重疊:subplot或者直接在圖形窗口另行創建一個專門用於容納注釋對象的坐標軸
自動模式屬性(照相機屬性):
CameraPosition:相機位置[x,y,z]
CameraPositionMode:位置取值模式
CameraTarget:目標[x,y,z]
CameraTargetMode:目標模式
CameraUpVector:正位向量
CameraUpVectorMode:正位向量模式
CameraViewAngle:視角【0 180】
CameraViewAngleMode:視角取值模式
Projection:投影方式
6.6 圖形輸出控制
NextPlot屬性值:new、add、replace、 replacechildren
通過hold on和hold off可以設定圖形窗口對象和軸對象的屬性設置為add和replace。
7 程序設計
7.1 M文件
M文件就是介紹上海的幻燈片一系列相關代碼組成的一個擴展名為.m的文件。分為腳本文件和函數文件兩類。
腳本文件不自帶參數;
函數文件以function…開始
函數工作區間:Function workspace
M文件結構:函數聲明行、H1行、幫助文本、編寫和修改注釋、函數體
P-碼文件:為M文件生成的內部偽代碼
P-碼文件的預生成函數為Pcode,格式:pcode Func_name當前路徑
Pcode Func_name-inplace M文件目錄
對P-碼文件的操作:
Inmem:列出所有內存中P-碼文件名
Clear Func_name:清楚某個p-碼文件
Clear function:清楚所有p-碼文件
7.2 函數
分為M-函數文件和匿名函數
一個M文件只能有1個主函數。
多個子函數
主函數還分為:私用函數和重載函數
嵌套函數:多平行和多層嵌套
7.3 變數
變數名區分大小寫;
最多包含63個字元;
必須以字母開始起名。
後可為字母、下劃線;
不允許出現標點符號。
17個系統關鍵字:break、case、catch、continue、else、elseif、end、for、function、globle、if、otherwise、persistent、return、switch、try、while
可在命令窗口輸入iskeyword顯示。
特殊變數:ans,beep,pi,eps,inf,NaN(nan,i(j),nargin(輸入個數),nargout(輸出個數),realmin,realmax,bitmax,varargin(可變的函數輸入參數個數),varargout
分為局部變數、全局變數(globle)、永久變數(persistent)
Inputname(n):第n個輸入變數的調用名
7.4 程序結構
分為順序結構、循環結構(for或while)和分支結構(if或switch)
7.5 程序控制語句
結束循環:continue、break、return
Continue和break:結束本次循環
Warning:錯誤警告語句
Error和errordlg(顯示對話框)
Try…catch:try中有錯是執行catch語句
Input和keyboard:輸入控制語句
8 程序調試、優化和出錯處理
8.1 調試
調試(debug):去除bug
Bug:語法錯誤、邏輯錯誤、異常
Debug函數:
Dbstop:設置斷點
Dbclear:清除斷點
Dbcout:重新執行
Dbdown/dbup:變更當前工作空間
Dbmex:MEX文件調試
Dbstack:列出函數調用關系
Dbstatus:列出所有斷點
Dbstep:單步或多步執行
Dbtype:列印M文件
Dbquit:退出調試模式
Debug輔助函數:
Echo:在命令窗口顯示當前執行代碼
Disp:顯示變數
Sprintf/fprintf:指定格式顯示文本
Whos:列出工作空間中所有變數
Size:顯示變數的大小
Keyboard:中斷程序執行,等待輸入
Return:結束函數執行
Warning:引發、顯示指定的警告
Error:引發、顯示指定的錯誤
Laster:返回最近產生的錯誤消息
Lasterror:錯誤消息及相關信息
Lastwarn:返回最近產生的警告
8.2 性能優化
碼表:tic——toc時間測試
效率優化技術:
代碼向量化
預分配足夠大的數組
對不可避免且耗時很大的循環嘗試在MEX文件內實現
盡量避免更改變數的數據類型或維數
盡量避免實數和復數之間的相互賦值
盡量採用實數運算
合理使用邏輯運算
盡量採用函數而不是腳本文件
盡量使用load、save而不是IO函數
內存優化技術:whos,clear,save,load
預分配足夠大的數組
盡量在函數開始時創建變數
利用repmat增加數組的空間大小
對大部分數據為0的矩陣變為稀疏矩陣
若要保存大量數據採用數組構架而非構架數組
及時地清除佔用內存很大的臨時變數
盡量地重用內存,而非開辟新內存
8.3 出錯處理
Try…catch查詢語句