天天看點

matlab 繪圖 執行個體,MATLAB 繪圖執行個體

代碼+圖檔;

環境 : matlab  r2012b

1   在0≤x≤2區間内,繪制曲線

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)

作圖:

matlab 繪圖 執行個體,MATLAB 繪圖執行個體
matlab 繪圖 執行個體,MATLAB 繪圖執行個體

2

向量乘積要加. *号

代碼:

t=0:0.1:2*pi;

x=t.*sin(3*t);

y=t.*sin(t).*sin(t);

plot(x,y);

作圖:

matlab 繪圖 執行個體,MATLAB 繪圖執行個體
matlab 繪圖 執行個體,MATLAB 繪圖執行個體

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)

作圖:

matlab 繪圖 執行個體,MATLAB 繪圖執行個體
matlab 繪圖 執行個體,MATLAB 繪圖執行個體

4   plotyy

示範“不同坐标系下作圖的重疊”

橫坐标是相同标度的 縱坐标不是  這樣圖形上的交點并非真實的公共點

代碼:

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);

作圖:

matlab 繪圖 執行個體,MATLAB 繪圖執行個體
matlab 繪圖 執行個體,MATLAB 繪圖執行個體

5  hold on 的使用 : 同時顯示兩張圖檔

代碼:

x=0:pi/100:2*pi;

y1=0.2*exp(-0.5*x).*cos(4*pi*x);

plot(x,y1)

hold on

y2=2*exp(-0.5*x).*cos(pi*x);

plot(x,y2);

hold off

作圖:

matlab 繪圖 執行個體,MATLAB 繪圖執行個體

如果沒有hold on  第一個圖就被覆寫了

6  input 輸入的使用

代碼:

x1=input('Please enter x-coordinate of point 1:')

y1=input('Please enter y-coordinate of point 1:')

x2=input('Please enter x-coordinate of point 2:')

y2=input('Please enter y-coordinate of point 2:')

x=linspace(x1,x2,1001);

y=linspace(y1,y2,1001);

plot(x,y,x1,y1,'o',x2,y2,'o')

輸入1 3 2 1

作圖如下 :

matlab 繪圖 執行個體,MATLAB 繪圖執行個體
matlab 繪圖 執行個體,MATLAB 繪圖執行個體

7  matlab 繪圖樣式

調用格式  plot(x1,y1,選項1,x2,y2,選項2,…,xn,yn,選項n)

當選項省略時,線型一律用實線,顔色将根據曲線的先後順序依次。

例子:

當選項省略時,MATLAB規定,線型一律用實線,顔色将根據曲線的先後順序依次。

在同一坐标内,分别用不同線型和顔色繪制曲線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');

作圖:

matlab 繪圖 執行個體,MATLAB 繪圖執行個體

8   圖形标注

title(圖形名稱)

xlabel(x軸說明)

ylabel(y軸說明)

text(x,y,圖形說明)

legend(圖例1,圖例2,…)

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') ; %加圖例

例子:

matlab 繪圖 執行個體,MATLAB 繪圖執行個體

9  坐标控制

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指令在兩種狀态之間進行切換

代碼:

(複平面上)

t=0:0.01:2*pi;

x=exp(i*t);

y=[x;2*x;3*x]';

plot(y);

grid on;

box on;

作圖:

matlab 繪圖 執行個體,MATLAB 繪圖執行個體

10:極坐标

代碼:

t=0:pi/50:2*pi;

r=sin(t).*cos(t);

polar(t,r,'-*');

作圖:

matlab 繪圖 執行個體,MATLAB 繪圖執行個體

11  二維統計分析圖

bar(x,y,選項)      %條形圖

stairs(x,y,選項)   % 階梯圖

stem(x,y,選項)     %杆圖

fill(x1,y1,選項1,x2,y2,選項2,…)   %填充圖

代碼:

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 繪圖 執行個體,MATLAB 繪圖執行個體

12 例子

要求

(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 繪圖 執行個體,MATLAB 繪圖執行個體

13

三維作圖

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;

作圖:

matlab 繪圖 執行個體,MATLAB 繪圖執行個體

14

三維曲面

代碼:

[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]);

作圖:

matlab 繪圖 執行個體,MATLAB 繪圖執行個體

知識點:

在MATLAB中,利用meshgrid函數産生平面區域内的網格坐标矩陣。其格式為:

x=a:d1:b; y=c:d2:d;

[X,Y]=meshgrid(x,y);

語句執行後,矩陣X的每一行都是向量x,行數等于向量y的元素的個數,矩陣Y的每一列都是向量y,列數等于向量x的元素的個數。

15

代碼:

[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)')

作圖:

matlab 繪圖 執行個體,MATLAB 繪圖執行個體

16

sphere函數的調用格式為:

[x,y,z]=sphere(n)

cylinder函數的調用格式為:

[x,y,z]= cylinder(R,n)

peaks 函數用于三維曲面的示範

代碼:

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);

作圖:

matlab 繪圖 執行個體,MATLAB 繪圖執行個體

17

三維形式的條形圖 杆圖 餅圖

例子:

繪制三維圖形:

(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' )

作圖:

matlab 繪圖 執行個體,MATLAB 繪圖執行個體

18

瀑布圖和等高線圖

代碼:

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');

作圖:

matlab 繪圖 執行個體,MATLAB 繪圖執行個體

19

調整視角角度  接上面代碼

peaks;

view([0,-30]);作圖:

matlab 繪圖 執行個體,MATLAB 繪圖執行個體

20

圖形着色

shading faceted指令将每個網格片用其高度對應的顔色進行着色,但網格線仍保留着,其顔色是黑色。這是系統的預設着色方式。

shading flat指令将每個網格片用同一個顔色進行着色,且網格線也用相應的顔色,進而使得圖形表面顯得更加光滑。

shading interp指令在網格片内采用顔色插值處理,得出的表面圖顯得最光滑。

代碼:

[x,y,z]=sphere(20);

colormap(copper);

subplot(1,3,1);

surf(x,y,z);

axis equal

subplot(1,3,2);

surf(x,y,z);shading flat;

axis equal

subplot(1,3,3);

surf(x,y,z);shading interp;

axis equal

作圖:

matlab 繪圖 執行個體,MATLAB 繪圖執行個體

21

光照處理:

代碼:

[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');

作圖:

matlab 繪圖 執行個體,MATLAB 繪圖執行個體