我知道我可以做創建MATLAB三維曲面圖:如何在MATLAB中創建一個具有不規則空間數據的衝浪圖?
x = linspace(1,10,100);
y = linspace(10,20,100);
[X Y] = meshgrid(x,y);
Z = X * Y;
surf(X,Y,Z);
但這需要對高度圖生成排隊的所有節點。我有一組具有任意點(x,y)和高度(z)的數據。有沒有一種簡單的方法來繪製一個圖形,它將以類似於surf
的方式在點之間生成曲面?
我知道我可以做創建MATLAB三維曲面圖:如何在MATLAB中創建一個具有不規則空間數據的衝浪圖?
x = linspace(1,10,100);
y = linspace(10,20,100);
[X Y] = meshgrid(x,y);
Z = X * Y;
surf(X,Y,Z);
但這需要對高度圖生成排隊的所有節點。我有一組具有任意點(x,y)和高度(z)的數據。有沒有一種簡單的方法來繪製一個圖形,它將以類似於surf
的方式在點之間生成曲面?
Appologies,一些狩獵後,我好不容易纔回答我的問題:
可以使用trisurf
功能:
tri = delaunay(x,y);
trisurf(tri,x,y,z);
如果你有密集的數據,你會想要做shading interp
(或其他值,檢查doc shading
),所以你不會因網格而產生黑點。
它看起來像你已經找到了你的答案,使用DELAUNAY和TRISURF生成和繪製一個三角形表面。
作爲一種替代方法,您也可以將一個有規律間距的網格放入非均勻間隔的點中,以便生成一個可用SURF命令繪製的曲面。我討論瞭如何使用my answer到this other question on SO中的TriScatteredInterp class(或不提倡使用的函數GRIDDATA)完成此操作。
實際上,避免黑色斑點的最好方法是將屬性'edgeColor'設置爲'none'。 – Jonas 2010-05-17 11:03:05