Matlab之三維曲面的繪製

2021-10-02 22:22:40 字數 1775 閱讀 8444

在繪製曲面之前,需要先將資料點生成平面資料網格,其生成的資料是網格的座標。

生成的方式有兩種:

(1)利用矩陣運算生成

**示例:

x = 2:6;

y = (3:8)';

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

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

其中,x,y為生成的網格資料,下圖為網格資料的示意圖。

(2)利用meshgrid函式生成

[x, y] = meshgrid(x, y):其中,x、y為向量,儲存網格點座標的x、y為矩陣。

**示例:

x = 2:6;

y = (3:8)';

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

其效果與方法1效果相同。

函式功能:mesh函式繪製三維網格圖,surf函式繪製三維網格圖。

呼叫格式:

mesh(x, y, z, c)

surf(x, y, z, c)

其中,x、y為網格座標矩陣,z為網格點上的高度矩陣,c用於指定在不同高度下的曲面顏色(當不輸入c時,使用z代表高度顏色)。

**示例:

clc;

clear all;

t = -2:0.2:2;

[x, y] = meshgrid(t);

z = x.*exp(-x.^2 - y.^2);

subplot(1,3,1);

mesh(x,y,z);title('網格圖');

subplot(1,3,2);

surf(x,y,z);title('曲面圖');

subplot(1,3,3);

plot3(x,y,z);title('線條圖');

grid on

執行結果:

其呼叫格式與mesh函式surf函式一致。 

**示例:

clc;

clear all;

[x, y] = meshgrid(0:0.1:2, 1:0.1:3);

z = (x-1).^2 + (y-2).^2-1;

subplot(2,2,1);

meshc(x,y,z);title('meshc(x,y,z)');

subplot(2,2,2);

meshz(x,y,z);title('meshz(x,y,z)');

subplot(2,2,3);

surfc(x,y,z);title('surfc(x,y,z)');

subplot(2,2,4);

surfl(x,y,z);title('surfl(x,y,z)');

執行結果:

matlab之連續 離散的三維曲面繪製

連續 其實也不算連續,但為了和離散區分,定義為連續,與下面離散點的不同就是,連續表示z可以用x,y來表示,而離散是純的散點。z沒有乙個確定的關於x,y的函式形式 一般採用surf x,y,z 命令。注意x於y是同維數還是不同維數,均需要採用meshgrid 函式將其變為同維數的矩陣。z為以x與y作為...

matlab 三維繪製

1.mesh z 語句 mesh z 語句可以給出矩陣z元素的三維消隱圖,網路表面由z座標點定義,與前面敘述的x y平面的線格相同,圖形由鄰近的點連線而成 它可用來顯示用其它方式難以輸出的包含大量資料的大型矩陣,也可用來繪製z變數函式 顯示兩變數的函式z f x,y 第一步需產生特定的行和列的x y...

matlab 三維繪製

1.mesh z 語句 mesh z 語句可以給出矩陣z元素的三維消隱圖,網路表面由z座標點定義,與前面敘述的x y平面的線格相同,圖形由鄰近的點連線而成 它可用來顯示用其它方式難以輸出的包含大量資料的大型矩陣,也可用來繪製z變數函式 顯示兩變數的函式z f x,y 第一步需產生特定的行和列的x y...