星期三, 11月 29, 2006

MATLAB課堂作業: 作業九

1. What's difference between the commands "line" and "plot", explain by using your own examples.
ANS:
line指令與plot指令的差別主要如下:
(1) 以line指令可在同一個圖執行多次線段之繪製,以多行對應表示,每一行代表一線;但是使用plot指令時,於圖形視窗內新產生的圖形會覆蓋掉原有的圖形,如果想在已存在的圖中加入新圖,則需要在繪圖指令中間加上hold on指令,使新產生的圖形疊加在原有圖形上面。

line 指令
>> x=1:1000;
>> y1=x.^(1/2);y2=x.^(1/3);y3=x.^(1/4);
>> h1=line(x,y1);
>> h2=line(x,y2);
>> h3=line(x,y3);

plot 指令
>> x=1:1000;
>> y1=x.^(1/2);y2=x.^(1/3);y3=x.^(1/4);
>> plot(x,y1)
>> hold on
>> plot(x,y2)
>> hold on
>> plot(x,y3)


圖形一

(2) line指令和plot指令皆可以單一plot指令同時畫出三個圖形,但是兩者指令寫法略有不同。以line指令讓兩函數同時出現在一個指令時,要安排成行向量,每一行代表一條曲線:

line指令
x=1:1000;
y=line([x',x',x'],[x'.^(1/2),x'.^(1/3),x'.^(1/4)])

plot指令
x=1:1000;
plot(x,x.^(1/2),x,x.^(1/3),x,x.^(1/4))

而兩者畫出來的圖形會以三個不同顏色表示:藍→綠→紅(依先後順序排列)

圖形二

(3) line指令沒有plot指令之簡易設定功能,所以有些基本參數需依其參數名稱設定。如果要更改以line指令繪出多個圖形的顏色、線條寬度,或是線條形式,要用set呼叫的方式一一變更;而plot指令則可直接以單一指令指定曲線的形式。

line指令
>> x=1:10;
>> y1=x.^(1/2);y2=x.^(1/3);y3=x.^(1/4);
>> h1=line(x,y1);
>> h2=line(x,y2);
>> h3=line(x,y3);
>> set(h1,'color','r','linestyle','-','marker','o')
>> set(h2,'color','g','linestyle','-.','marker','x')
>> set(h3,'color','k','linestyle',':','marker','*')

plot指令
x=1:10;
plot(x,x.^(1/2),'r-o',x,x.^(1/3),'g-.x',x,x.^(1/4),'k:*')

圖形三

沒有留言: