不論是在科研工作中,還是在實際工程應用中,常常會遇到三維或者更多維資料的處理,並且將處理的資料在圖形中顯示出來,MATLAB平臺也提供了很多關於三維圖形繪製的函式,利用這些函式可以很方便的實現三維圖形的繪製,以下主要講解Matlab中關於三維圖形繪製相關的函式。
1、呼叫plot3函式來繪製三維曲線圖,呼叫格式如下:
plot3(x1,y1,z1,’PropertyName’,’PropertyValue’...);
其中PropertyName表示屬性名,可以是顏色,線型,線寬等屬性,PropertyValue表示屬性值,對應屬性名所包含的各種屬性值。
該函式呼叫對應的m檔案如下:
clear all;%%表示清空所有變數及變數值%%
t=0:pi/360:2*pi;
x=sin(t);
y=cos(t);
z=2*x.^2+y.^2;
plot3(x,y,z,'Color','r','LineWidth',2);
%%三維曲線座標軸和標題的設定%%
xlabel('x');
ylabel('y');
zlabel('z');
title('三維曲線圖');
axis([-1.2 1.2 -1.2 1.2 0.5 2.2];
m檔案操作及執行結果如下:
2、呼叫surf、surfc(得到含有等高線的三維曲面圖)、surfl(帶燈光的三維曲面圖)三個函式來繪製三維曲面圖,呼叫格式如下:
surf(x,y,z,’PropertyName’,’PropertyValue’...)
呼叫該函式對應m檔案如下:
t=-2:0.1:2;
[x,y] =meshgrid(t);%%表示區域網格控制,目地是為了讓x,y形成格點矩陣%%
z=5*x.^2+8*y^3;
surf(x,y,z);
%%設定三維曲面x軸,y軸,z軸,標題對應內容及三個座標軸的取值範圍%%
xlabel('X');
ylabel('Y');
zlabel('Z');
title('surf三維曲面圖');
axis([-2.5 2.5 -2.5 2.5 -5 25]);
3、呼叫mesh、meshc(得到含有等值線的三維網格圖)、surfz(用於繪製包含零平面的網格線)三個函式來繪製三維曲面圖,呼叫格式如下:
mesh(x,y,z,’PropertyName’,’PropertyValue’...)
mesh(x,y,z);
title('mesh三維網格圖');
4、呼叫contour3函式繪製三維等高線圖,呼叫格式如下:
contour3(z,n);
contour3(x,y,z,n);
編寫該函式呼叫的m檔案,如下:
[x,y]=meshgrid(-1.5:0.01:1.5);
z=x.*exp(-x.^2-2*y.^2);
contour3(x,y,z,15);
grid off;%%關閉網格%%
%%設定三維等高線x軸,y軸,z軸,標題對應內容及三個座標軸的取值範圍%%
title('contour3三維等高線圖');
axis([-1.5 1.5 -1.5 1.5 -0.5 0.5]);
5、特殊三維圖形繪製
對上面所講的四種特殊三維圖形進行繪製,首先編寫對應的m檔案如下:
clear all;
t=0:pi/20:2*pi;
[x,y,z]=cylinder(1+cos(t));
subplot(2,2,1)
axis([-3 3 -3 3 0 1]);
title('三維柱面圖形');
subplot(2,2,2)
sphere;
axis([-1 1 -1 1 -1 1]);
title('三維球體圖形');
subplot(2,2,3)
a=[1 2 2.5 3 1.5];%%各部分所佔的比例%%
b=[0 0 1 0 0];%%0,表示不單獨分離出來,1表示分離出來表示%%
pie3(a,b);
title('三維餅狀圖形')
subplot(2,2,4)
[X2,Y2]=meshgrid(-2:0.25:2);
Z2=peaks(X2,Y2);
ribbon(Y2,Z2);
title('三維綵帶圖形');
不論是在科研工作中,還是在實際工程應用中,常常會遇到三維或者更多維資料的處理,並且將處理的資料在圖形中顯示出來,MATLAB平臺也提供了很多關於三維圖形繪製的函式,利用這些函式可以很方便的實現三維圖形的繪製,以下主要講解Matlab中關於三維圖形繪製相關的函式。
1、呼叫plot3函式來繪製三維曲線圖,呼叫格式如下:
plot3(x1,y1,z1,’PropertyName’,’PropertyValue’...);
其中PropertyName表示屬性名,可以是顏色,線型,線寬等屬性,PropertyValue表示屬性值,對應屬性名所包含的各種屬性值。
該函式呼叫對應的m檔案如下:
clear all;%%表示清空所有變數及變數值%%
t=0:pi/360:2*pi;
x=sin(t);
y=cos(t);
z=2*x.^2+y.^2;
plot3(x,y,z,'Color','r','LineWidth',2);
%%三維曲線座標軸和標題的設定%%
xlabel('x');
ylabel('y');
zlabel('z');
title('三維曲線圖');
axis([-1.2 1.2 -1.2 1.2 0.5 2.2];
m檔案操作及執行結果如下:
2、呼叫surf、surfc(得到含有等高線的三維曲面圖)、surfl(帶燈光的三維曲面圖)三個函式來繪製三維曲面圖,呼叫格式如下:
surf(x,y,z,’PropertyName’,’PropertyValue’...)
呼叫該函式對應m檔案如下:
t=-2:0.1:2;
[x,y] =meshgrid(t);%%表示區域網格控制,目地是為了讓x,y形成格點矩陣%%
z=5*x.^2+8*y^3;
surf(x,y,z);
%%設定三維曲面x軸,y軸,z軸,標題對應內容及三個座標軸的取值範圍%%
xlabel('X');
ylabel('Y');
zlabel('Z');
title('surf三維曲面圖');
axis([-2.5 2.5 -2.5 2.5 -5 25]);
m檔案操作及執行結果如下:
3、呼叫mesh、meshc(得到含有等值線的三維網格圖)、surfz(用於繪製包含零平面的網格線)三個函式來繪製三維曲面圖,呼叫格式如下:
mesh(x,y,z,’PropertyName’,’PropertyValue’...)
t=-2:0.1:2;
[x,y] =meshgrid(t);%%表示區域網格控制,目地是為了讓x,y形成格點矩陣%%
z=5*x.^2+8*y^3;
mesh(x,y,z);
%%設定三維曲面x軸,y軸,z軸,標題對應內容及三個座標軸的取值範圍%%
xlabel('X');
ylabel('Y');
zlabel('Z');
title('mesh三維網格圖');
axis([-2.5 2.5 -2.5 2.5 -5 25]);
m檔案操作及執行結果如下:
4、呼叫contour3函式繪製三維等高線圖,呼叫格式如下:
contour3(z,n);
contour3(x,y,z,n);
編寫該函式呼叫的m檔案,如下:
[x,y]=meshgrid(-1.5:0.01:1.5);
z=x.*exp(-x.^2-2*y.^2);
contour3(x,y,z,15);
grid off;%%關閉網格%%
%%設定三維等高線x軸,y軸,z軸,標題對應內容及三個座標軸的取值範圍%%
xlabel('X');
ylabel('Y');
zlabel('Z');
title('contour3三維等高線圖');
axis([-1.5 1.5 -1.5 1.5 -0.5 0.5]);
m檔案操作及執行結果如下:
5、特殊三維圖形繪製
對上面所講的四種特殊三維圖形進行繪製,首先編寫對應的m檔案如下:
clear all;
t=0:pi/20:2*pi;
[x,y,z]=cylinder(1+cos(t));
subplot(2,2,1)
surf(x,y,z);
axis([-3 3 -3 3 0 1]);
title('三維柱面圖形');
subplot(2,2,2)
sphere;
axis([-1 1 -1 1 -1 1]);
title('三維球體圖形');
subplot(2,2,3)
a=[1 2 2.5 3 1.5];%%各部分所佔的比例%%
b=[0 0 1 0 0];%%0,表示不單獨分離出來,1表示分離出來表示%%
pie3(a,b);
title('三維餅狀圖形')
subplot(2,2,4)
[X2,Y2]=meshgrid(-2:0.25:2);
Z2=peaks(X2,Y2);
ribbon(Y2,Z2);
title('三維綵帶圖形');
m檔案操作及執行結果如下: