11/06/2006

9.3.3單一參數之處理

Plot()這個指令如果內容少到僅利剩有一個參數時,如y,仍然可以據此繪圖,只是此時之對應x變為y值之對應序號。例如:


% Demo_5 Draw curves using plot(y)
x=linspace(0,10,50); %2π之區間分成50等分
y=x.*x;
plot(y,'k-o');
xlabel('order'); %水平座標名稱
ylabel('y= x'); %垂直座標名稱
grid on; %打開格線模式





由此可知,若y 為一向量,則plot(y) 指令執行之結果應下面之指令相同:

plot(1:length(y), y)


實際上若將上述之y值安排為行距陣,仍然可以冋時繪出三條線,只是此時無法設定個別曲線之屬性。其例如Demo_6,結果如圖9.14。


% Demo_6 Draw curves using plot(y)
x=linspace(0,2*pi,50)'; %2π之區間分成50等分
y=[sin(x) cos(x) sin(x)+cos(x)];%造成三行資料
plot(x,y);
xlabel('x, radians'); %水平座標名稱
ylabel('y=sin(x), cos(x), sinx(x)+cos(x)'); %垂直座標






利用plot()繪出多條曲線於一圖,除利用上述各種方法外,亦可利用多次執行plot()的方法。如此可以個別設定線段之屬性。只是plot()每執行一次,會將先前執行之圖形去除,因此必須在執行plot()指令之前後,宣告hold 這個指令。hold on 表示可以重疊繪圖,hold off(預設值)則表示不可重疊繪圖。繪圖時可以善用這一個指令,以便能將多條曲線繪製於同一圖上(圖9.15)。
plot()這個指令實際上也可以處理複數的世界。若某數列為複數,則利用此繪圖指令時,其實數部份將繪製於x軸,而對應之虛數部份則繪於y軸。設Y為複數,則plot(Y)之結果與plot(real(Y), imag(Y))相同。實例程式如Demo_7,其結果如圖9.15。


% Demo_7 Draw curves using complex vector
x=linspace(0,2*pi,50)'; %2π之區間分成50等分
y=sin(x)+i*cos(x); %產生複數系列
plot(y);
xlabel('x=sin(x)'); %水平座標名稱
ylabel('y=cos(x)'); %垂直座標
axis equal