Re: [繪圖] 3D離散資料的繪圖已回收

看板MATLAB作者 (forcing to A cup)時間14年前 (2011/03/21 12:45), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
自問自答 以下是轉貼對岸的討論區 來源 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
文章代碼(AID): #1DXjVYTv (MATLAB)
文章代碼(AID): #1DXjVYTv (MATLAB)