作為一個功能強大的工具軟體,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);
【例】 分析下列程式繪制的曲線。
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中,如果需要繪制出具有不同縱坐标标度的兩個圖形,可以使用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)
④ 圖形保持
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提供了一些繪圖選項,用于确定所繪曲線的線型、顔色和資料點标記符号,它們可以組合使用。例如,“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表示藍色,-.表示圖形線型為點劃線。
【例】在同一坐标内,分别用不同線型和顔色繪制曲線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');
三、圖形标記
在繪制圖形的同時,可以對圖形加上一些說明,如圖形名稱、圖形某一部分的含義、坐标說明等,将這些操作稱為添加圖形标記。
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,'餘弦曲線');
【例】 在坐标範圍0≤X≤2π,-2≤Y≤2内重新繪制正弦曲線,其程式為:
x=linspace(0,2*pi,60);
%生成含有60個資料元素的向量X
y=sin(x);
axis ([0 2*pi -2 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指令在兩種狀态之間進行切換。
五、加圖例
給圖形加圖例指令為legend。該指令把圖例放置在圖形空白處,使用者還可以通過滑鼠移動圖例,将其放到希望的位置。
格式:legend('圖例說明','圖例說明');
【例】 為正弦、餘弦曲線增加圖例,其程式為:
plot(x,y1,x,y2, '--');
legend('sin(x)','cos(x)');
六、對函數自适應采樣的繪圖函數
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])
七.極坐标圖
polar函數用來繪制極坐标圖,其調用格式為:
polar(theta,rho,選項)
其中theta為極坐标極角,rho為極坐标矢徑,選項的内容與plot函數相似。
例 繪制r=sin(t)cos(t)的極坐标圖,并标記資料點。
八. 圖形标記
title(‘加圖形标題');
Legend(‘sin(x)’);%加圖例
繪制三維螺旋曲線
九.繪制三維網格圖。函數格式:mesh(x,y,z,c)
其中:x,y控制X和Y軸坐标
矩陣z是由(x,y)求得Z軸坐标
(x,y,z)組成三維空間的網格點
c用于控制網格點顔色
十.surf函數
繪制三維曲面圖,各線條之間的補面用顔色填充。surf函數和mesh函數的調用格式一緻。
函數格式: surf (x,y,z)
其中x,y控制X和Y軸坐标,矩陣z是由x,y求得的曲面上Z軸坐标。
十一.等高線圖
十二.動畫設計