回覆列表
  • 1 # 文文愛吃肉

    不論是在科研工作中,還是在實際工程應用中,常常會遇到三維或者更多維資料的處理,並且將處理的資料在圖形中顯示出來,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檔案操作及執行結果如下:

  • 中秋節和大豐收的關聯?
  • LOL:雷電法王瑞茲迎來第五次重做,災難終於到來,重做對於瑞茲來說是好事嗎?