not a number

安安
  • About
  • Publications
  • Archive
  • feeds

Posts match “ plot ” tag:

over 8 years ago

自訂 Matlab polar 函數的邊界

有在用 Matlab 的人可能有用過 polar這個畫極座標的繪圖函數,但是很令人崩擴的是 polar 這個函數本身功能非常有限,如果要多別的事情,都要靠 handler 還有 set搭配來完成,不像 plot早就已經做到萬能的地步,幾乎想要做什麼,都可以直接在 argument 裡面完成。

現在的問題是,假設我想要把兩個函數都畫在同一張 polar 上面,聰明的各位可能馬上就會想到可以透過 hold on,來實作,這是沒錯的,但是如果實際去做,會發現一個很糟糕的事情:polar的limit會被第一個畫的函數所限制住,例如假設我想要畫以下的函數:

最簡單的寫法大概是這樣:

close all;

N = 101;
theta = linspace(0, 2*pi, N);

y1 = abs(cos(theta));
y2 = 1.5 * abs(sin(theta));

figure(1),
polar(theta, y1, 'k');
hold on,
polar(theta, y2, 'r');
hold off;

但是畫出來卻會變這樣:

囧!因為 limit 已經被第一個polar決定了,所以如果後面再hold on上去的圖案更大,就只能悲劇。

Read on →
  • Matlab
  • plot
  • polar
  • 論文
  • September 26, 2013 10:58
  • Permalink
  • Comments
 

Copyright © 2013 leeneil . Powered by Logdown.
Based on work at subtlepatterns.com.