簡體   English   中英

在Matlab / Freemat中繪制3D表面圖

[英]Plot 3d surface plot in matlab/freemat

我想問一下3D表面繪圖。 當我剛接觸它時,我只是在嘗試。 基本上,我有3個參數x,y,z,這些參數來自實驗數據,我想將其繪制出來。 因此,我嘗試了

x= [6 7 8 9 10 11 12 1]
x =
  6  7  8  9 10 11 12  1
--> y=[2 3 4 5 6 1 6 8]
y =
 2 3 4 5 6 1 6 8
--> z= [3 4 5 6 7 8 9 10]
z =
  3  4  5  6  7  8  9 10
meshgrid(x,y,z)
surf(x,y,z)

繪圖窗口確實出現了,但是沒有圖形。 我的方法錯了嗎?

謝謝!

聽起來您需要從plot3開始,因為您只是以3D描述一組點,而不是網格或曲面上的點。 看看是否滿足您的要求。

x = [6 7 8 9 10 11 12 1];
y = [2 3 4 5 6 1 6 8];
z = [3 4 5 6 7 8 9 10];
plot3(x, y, z, '.');

這就是我要繪制表面的方式:

%define the data 
x=[6 7 8 9 10 11 12 1 6 7 8 9 10 11 12 1];
y=[2 3 4 5 6 1 6 8 2 3 4 5 6 1 6 8];
z=[3 4 5 6 7 8 9 10 3 4 5 6 7 8 9 10];

%Create 3D surface
[X,Y]=meshgrid(x,y);
Z=griddata(x,y,z,X,Y);

%Plot the surface
surface(X,Y,Z);
shading interp %makes it look sexy
%xlim([])
%ylim([])

有時我使用軸標注使圖看起來更好(消除了不需要的白色區域)。 對於這組數據,我可以使用xlim([6 11])和ylim([2 6])。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM