【Matlab】山地建模?立体热度?怎么绘制三维曲面图?
1.Introduction
距離上次寫博客已經差不多兩個月了,期間基本也是沒碰過代碼了,最近搞了下數學建模,重新用了下Matlab,很多語法都忘記了,同時也學到一些新的工具,今天就介紹一下如何將二維矩陣,三維可視化。可以利用山地海拔進行山地建模,也可以對特征矩陣輸出三維熱度圖(如下圖)。
2.Materials and methods
將二維矩陣轉化為三維立體圖,本質是在原始X-Y的坐標系中,加入Z軸,其中每一點的Z軸坐標就是二維矩陣中的值,也就是說將數值轉化為“高度”,這樣數值小的位置會“凹下去”,數值高的位置會“凸出來”。
在進行三維可視化的過程中,首先需要一個二維矩陣,這里我們以 Matlab 中的 Magic square 矩陣為例,利用函數生成5×5大小矩陣效果如下:
矩陣所表達信息在二維平面很難獲取,這也是本文章所想表達的一點,所以我們對其進行三維可視化。代碼如下:
3. Results and discussion
經過上面5行代碼,對5階“魔方”三維化的結果如下圖
誒,等等,好像有一點點意思,不過還不夠意思,轉起來~
可以看到,我們把原來平平無奇的平面矩陣,轉化成了上圖的的的的 小狗(從側后方看)?咳咳,本來想寫科技論文的,怎么畫風又改了?
同時,還可以對更高分辨率的矩陣進行三維可視化,magic(50)登場~
可以看到,50歲的小狗變強了,也變胖了。
另外,對于非方陣的矩陣也可以實現三維化,只需在代碼中對應修改即可
x = 1:5; % 改我 y = 1:5; % 改我 [X,Y] = meshgrid(x,y);最后,一般在山地三維圖中,都會伴隨有 等高線 ,實現代碼如下:
contour(X,Y,Z); % 二維等高線 contour3(X,Y,Z); % 三維等高線
因為大狗畢竟不是大山,下面展示下大山等高線的效果。
4. Conclusion
本博客提出的方法可以實現對任意二維矩陣的三維可視化,可以對具有高度信息的矩陣進行建模,同時,后期可以對特征矩陣,統計結果等多種表格數據可視化,增強視覺效果。
猜你喜歡:👇🏻
?【Matlab】如何對二維矩陣進行線性/非線性插值?
?【Matlab】一個超簡單的生成順序數組的方法
?【Matlab】矩陣中選取任意子矩陣
總結
以上是生活随笔為你收集整理的【Matlab】山地建模?立体热度?怎么绘制三维曲面图?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html是什么1002无标题,Jsf页面
- 下一篇: 【Matlab】如何对二维矩阵进行线性/