matlab學習筆記之五種常見的圖形繪制功能


分類:

  • 離散數據圖形繪制
  • 函數圖形繪制
  • 網格圖形繪制
  • 曲面圖形繪制
  • 特殊圖形繪制

本文重點介紹matlab五種圖形繪制方法的后三種。

 

一、網格圖形繪制

以繪制函數z=f(x,y)三維網格圖為例,下面為繪制步驟:

  1. 確定自變量x和y的取值范圍和取值間隔

    x = x1:dx:x2; y = y1:dy:y2;

  2.構成xoy平面上的自變量采樣格點矩陣

    1)  利用“格點”矩陣生成原理生成矩陣

      X = ones(size(y))*x; Y = y*ones(size(x));

    2)  利用meshgrid命令生成“格點”矩陣

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

  3.計算在自變量采樣“格點”上的函數值

    1)  mesh(X,Y,X)

    2)  mesh(Z)

    3)  mesh(X,Y,Z,C)

    4)  mesh(X,Y,Z,’PropertyName’,PropertyValue,...)

實例:繪制的圖像,並作定義域的裁剪。

clear,clf,

a = -1;b = 1;c = -15;d = 15;n = 20;eps1 = 0.01;

x = linspace(a,b,n);y = linspace(c,d,n);

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

% 計算函數值z,並做函數的定義域剪裁

for i = 1:n

    for j = 1:n

        if(1-X(i,j))<eps1 || X(i,j) - Y(i,j) < eps1

            Z(i,j) = NaN;

        else

            Z(i,j) = 1000*sqrt(1 - X(i,j))^-1.*log(X(i,j)-Y(i,j));

        end

    end

end

% 畫定義域邊界線

zz = -20*ones(1,n);plot3(x,x,zz),grid on,hold on

mesh(X,Y,Z)

view([-56.5 38]);

xlabel('x'),ylabel('y'),zlabel('z'),box on

結果:

 

 

二、曲面圖形繪制

曲面圖形的繪制使用surf函數完成,與mesh函數類似。

surf函數使用方式:

  1)surf(X,Y,X)

  2)surf(Z)

  3)surf(X,Y,Z,C)

  4)surf(X,Y,Z,’PropertyName’,PropertyValue,...)

實例:繪制圓錐體曲面。

clc,clear,close all

X = -10:1:10;

Y = -10:1:10;

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

Z = sqrt(X.^2 + Y.^2);

surf(X,Y,Z)

xlabel('x')

ylabel('y')

zlabel('z')

box on

axis tight

colormap(lines)

shading interp

set(gca,'Ydir','reverse');

set(gcf,'color','w');

結果:

 

 

 三、特殊圖形繪制

Matlab對於不同的三維曲面的繪制提供了不同的畫圖函數,如slice切片函數、quiver3三維箭頭標記函數、sphere等。下面以繪制空間曲線及其運動為例拋磚引玉:

已知空間曲線的方程為:

%   空間曲線的繪制

clc,clear,close all

t = 00:0.1:1.5;     % 設置運動時間

% 給定曲線方程

x = t.^2;

y = (2/3)*t.^3;

z = (6/4)*t.^4-(1/3)*t.^3;

plot3(x,y,x,'r.-'),hold on,grid on

% 計算各方向梯度

Vx = gradient(x);

Vy = gradient(y);

Vz = gradient(z);

% 繪制速度矢量圖

quiver3(x,y,z,Vx,Vy,Vz);

xlabel('x')

ylabel('y')

zlabel('z')

結果:

 

 

 歡迎探討。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM