2018年1月10日 星期三

用 matlab/octave 畫 心臟線


在matlab或octave畫圖形都是將所有可能的座標值放在矩陣中,再畫出來。由於心臟線通常是利用極座標來表示,也就是(r, θ),因此畫圖的方式略有不同。


假設我們要畫 r = 1+cos(θ),θ值當然是從0至2π,因此將0至2π切成0.01為一小段,以matlab/octave指令來寫就是 theta = 0:0.01:2*pi;r值相對應就是 r=1+cos(theta),最後利用指令polar來繪圖,總之如下所示:


再畫另一個圖形:r = sin(2θ)+cos(2θ)


當然也可以設定線形(實線或虛線)、顏色及標示符號(星號、圓圈)
下圖就是 r = 1-sin(theta),  '--r' 代表利用虛線及紅色來畫圖。


詳細線畫圖的格式可參考有關LineSpec的說明文件。
以上幾個例子都是用octave畫的,並不是matlab,當然兩者都可以達成相同的目的。
以下有幾個小問題需要特別注意:
1. polar()的參數順序是θ, r,不是r, θ。
2. 新版的matlab有個新指令polarplot(2016年以後)取代舊的polar,但octave目前還沒有提供這個新指令。總之在octave請用polar,在matlab 2016年以後的版本請用polarplot。polarplot與polar的用法相近,詳請可參考matlab的help文件。

-- end --


沒有留言:

張貼留言