天天看點

MatLab繪圖

作為一個功能強大的工具軟體,Matlab具有很強的圖形處理功能,提供了大量的二維、三維圖形函數。由于系統采用面向對象的技術和豐富的矩陣運算,是以在圖形處理方面友善又高效。

一般來說,一個指令行輸入一條指令,指令行以回車結束。但一個指令行也可以輸入若幹條指令,各指令之間以逗号分隔,若前一指令後帶有分号,則逗号可以省略。

如果一個指令行很長,一個實體行之内寫不下,可以在第一個實體行之後加上3個小黑點并按下Enter鍵,然後接着下一個實體行繼續寫指令的其他部分。3個小黑點稱為續行符,即把下面的實體行看作該行的邏輯繼續。

二維圖形

一、 plot函數

① 函數格式:plot(x,y)  其中x和y為長度相同

                    坐标向量

     函數功能:以向量x、y為軸,繪制曲線。

【例】 在區間0≤X≤2内,繪制正弦曲線y=sin(x)

其程式為:

x=0:pi/100:2*pi;  %必須加上分号,否則x直接顯示出來啦

y=sin(x); %必須加上分号,否則x直接顯示出來啦

plot(x,y)

【例】在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函數最簡單的調用格式是隻包含一個輸入參數:

plot(x)

     在這種情況下,當x是實向量時,以該向量元素的下标為橫坐标,元素值為縱坐标畫出一條連續曲線,這實際上是繪制折線圖。

②  含多個輸入參數的plot函數調用格式為: plot(x1,y1,x2,y2,…,xn,yn)

Ⅰ.當輸入參數都為向量時,x1和y1,x2和y2,…,xn和yn分别組成一組向量對,每一組向量對的長度可以不同。每一向量對可以繪制出一條曲線,這樣可以在同一坐标内繪制出多條曲線。

     Ⅱ.當輸入參數有矩陣形式時,配對的x,y按對應列元素為橫、縱坐标分别繪制曲線,曲線條數等于矩陣的列數。

【例】同時繪制正、餘弦兩條曲線y1=sin(x)和

              y2=cos(x),其程式為:

y1=sin(x);

y2=cos(x);

plot(x,y1,x,y2)

或者

x=[0:0.5:360]*pi/180;

plot(x,sin(x),x,cos(x))

中間變量繪圖

t=0:0.1:2*pi;

x=t.*sin(3*t); %.*表示點乘,*表示矩陣乘法

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

plot(x,y);

MatLab繪圖

【例】 分析下列程式繪制的曲線。

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中,如果需要繪制出具有不同縱坐标标度的兩個圖形,可以使用plotyy繪圖函數。調用格式為:

plotyy(x1,y1,x2,y2)

           其中x1,y1對應一條曲線,x2,y2對應另一條曲線。橫坐标的标度相同,縱坐标有兩個,左縱坐标用于x1,y1資料對,右縱坐标用于x2,y2資料對。

【例】用不同标度在同一坐标内繪制曲線       

                y1=0.2e-0.5xcos(4πx) 和

              y2=2e - 0.5xcos(πx)

MatLab繪圖

④  圖形保持

      hold on/off指令控制是保持原有圖形還是重新整理原有圖形,不帶參數的hold指令在兩種狀态之間進行切換。

hold on:啟動圖形保持功能,目前坐标軸和圖形都将保持,此後繪制的圖形都将添加在這個圖形之上,并且自動調整坐标軸的範圍。

hold off:關閉圖形保持功能。

hold :在hold on 和hold off指令之間進行切換。

【例】采用圖形保持,在同一坐标内繪制曲線y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx)。

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提供了一些繪圖選項,用于确定所繪曲線的線型、顔色和資料點标記符号,它們可以組合使用。例如,“b-.”表示藍色點劃線,“y:d”表示黃色虛線并用菱形符标記資料點。當選項省略時,MATLAB規定,線型一律用實線,顔色将根據曲線的先後順序依次。

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

        要設定曲線樣式可以在plot函數中加繪圖選項,其調用格式為:

plot(x,y1,’cs’,...)

其中c表示顔色, s表示線型。

【例】 用不同線型和顔色重新繪制例2圖形,其程式為:

plot(x,y1,'go',x,y2,'b-.')

           其中參數'go'和'b-.'表示圖形的顔色和線型。g表示綠色,o表示圖形線型為圓圈;b表示藍色,-.表示圖形線型為點劃線。

MatLab繪圖

【例】在同一坐标内,分别用不同線型和顔色繪制曲線y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx),标記兩曲線交叉點。

x=linspace(0,2*pi,1000);

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繪圖

三、圖形标記

在繪制圖形的同時,可以對圖形加上一些說明,如圖形名稱、圖形某一部分的含義、坐标說明等,将這些操作稱為添加圖形标記。

title(‘加圖形标題’);目前軸的正上方居

                   中位置處輸出文本作為标題   

xlabel('加X軸标記');    

ylabel('加Y軸标記');      

text(X,Y,'添加文本');

函數中的說明文字,除使用标準的ASCII字元外,還可使用LaTeX格式的控制字元,這樣就可以在圖形上添加希臘字母、數學符号及公式等内容。例如,text(0.3,0.5,‘sin({\omega}t+{\beta})’)将得到标注效果sin(ωt+β)。

plot(x,y1,'b*',x,y2,'r>');

title('繪制正弦,餘弦函數');

% title(date);

xlabel('橫軸');

ylabel('縱軸');

text(2,1,'正弦曲線');

text(1,0.6,'餘弦曲線');

MatLab繪圖

【例】 在坐标範圍0≤X≤2π,-2≤Y≤2内重新繪制正弦曲線,其程式為:

x=linspace(0,2*pi,60);

%生成含有60個資料元素的向量X

y=sin(x);

axis ([0 2*pi -2 2]);

MatLab繪圖

四、坐标控制

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

MatLab繪圖

五、加圖例

給圖形加圖例指令為legend。該指令把圖例放置在圖形空白處,使用者還可以通過滑鼠移動圖例,将其放到希望的位置。

格式:legend('圖例說明','圖例說明');

【例】 為正弦、餘弦曲線增加圖例,其程式為:

plot(x,y1,x,y2, '--');

legend('sin(x)','cos(x)');

MatLab繪圖

六、對函數自适應采樣的繪圖函數

        fplot函數則可自适應地對函數進行采樣,能更好地反應函數的變化規律。

         fplot函數的調用格式為:  

fplot(fname,lims,tol,選項)

        其中fname為函數名,以字元串形式出現,lims為x,y的取值範圍,tol為相對允許誤差,其系統預設值為2e-3。選項定義與plot函數相同。

【例】用fplot函數繪制f(x)=cos(tan(πx))的曲線。

指令如下:

        fplot('cos(tan(pi*x))',[ 0,1],1e-4)

或可先建立函數檔案fct.m,其内容為:

function  y=fct(x)

         y=cos(tan(pi*x));

用fplot函數調用fct.m函數,其指令為:

fplot(‘fct’,[0  1])

MatLab繪圖

七.極坐标圖

  polar函數用來繪制極坐标圖,其調用格式為:

polar(theta,rho,選項)

其中theta為極坐标極角,rho為極坐标矢徑,選項的内容與plot函數相似。

例  繪制r=sin(t)cos(t)的極坐标圖,并标記資料點。

MatLab繪圖

八. 圖形标記

title(‘加圖形标題');     

Legend(‘sin(x)’);%加圖例

繪制三維螺旋曲線

MatLab繪圖

九.繪制三維網格圖。函數格式:mesh(x,y,z,c)

其中:x,y控制X和Y軸坐标

       矩陣z是由(x,y)求得Z軸坐标

       (x,y,z)組成三維空間的網格點

       c用于控制網格點顔色

MatLab繪圖
MatLab繪圖

十.surf函數

繪制三維曲面圖,各線條之間的補面用顔色填充。surf函數和mesh函數的調用格式一緻。

函數格式: surf (x,y,z)

其中x,y控制X和Y軸坐标,矩陣z是由x,y求得的曲面上Z軸坐标。

MatLab繪圖
MatLab繪圖
MatLab繪圖

十一.等高線圖

MatLab繪圖

十二.動畫設計

MatLab繪圖