Re: [繪圖] 3D離散資料的繪圖已回收
自問自答 以下是轉貼對岸的討論區
來源 http://www.ilovematlab.cn/viewthread.php?tid=46330
我們經常遇到三維離散資料,但直接作圖只能利用plot3繪製出點圖來,如果我們想看到
網格圖或曲面圖,就要借助別的命令了,下面總結一下。
離散數據:
A = [1 2 3 4 5 6 7 8 9 10
4 11 14 7 0 0 1 0 0 0
0.144 1.632 2.392 0.92 0 0 0.528 0 0 0];
x = A(1, :);
y = A(2, :);
z = A(3, :);
1、利用三角剖分;
delaunay三角剖分是經典的剖分方法,matlab封裝成了一個函數,我們可以直接使用:
tri = delaunay(x,y);
trisurf(tri,x,y,z);
或者
trimesh(tri,x,y,z);
效果:
2、利用資料插值;
針對于網格資料,利用griddata插值:
Z = ones(size(z')) * z;
[X, Y] = meshgrid(x, y);
x1 = linspace(min(x), max(x));
y1 = linspace(min(y), max(y));
[X1, Y1] = meshgrid(x1, y1);
Z1 = griddata(X, Y, Z, X1, Y1);
mesh(X1, Y1, Z1);
或者
surf(X1, Y1, Z1);
效果:
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.243.214.96
推
03/22 01:28, , 1F
03/22 01:28, 1F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
繪圖
0
1