2014-12-06 86 views

回答

0

如果您不介意垂直線,只需使用stairs(x,t)函數就非常簡單。否則,您可以創建自己的函數來處理點對以生成線條並使用hold on單獨繪製它們。

function stairs2(x,y) 
    hold on; 
    for i=1:length(x)-1 
     plot(x(i:i+1),[y(i) y(i)]); 
    end 
    hold off; 
end 

然後按照上面的示例調用stairs2(x,t),並設置適當的縮放/座標軸。

或者,這是隻使用一個調用來繪製不同的方式:這個做那個

function stairs2(x,y) 
    for i=1:length(x)-1 
     A(:,i) = [x(i) x(i+1)]; 
     B(:,i) = [y(i) y(i)]; 
    end 
    plot(A,B,'b'); 
end 
+0

確定,但造成太多的對象繪製如果數組的大小大!對於4000個元素的數組,它繪製了3999個對象,如果我想保存手柄,關聯標籤等,它非常緩慢且難以使用。有可能matlab沒有像沒有垂直線的樓梯一樣的內置函數? :( – SD83 2014-12-06 23:11:25

+0

即使是內部的MATLAB函數也需要4000個獨立的線元素,我敢打賭,你無法同時觀看所有4000線,因爲你只需要使用常規繪圖,然後使用數據即可。要查看一小部分數據,只需用'stairs2(x(i1:i2),t(i1:i2))'來繪製該部分,其中'i1'是您的起始索引,'i2'是最終的索引如果繪製例如多行 – MasterHD 2014-12-06 23:16:41

+0

: X = linspace(-2 * PI,2 * PI); Y1 =的sin(x); Y2 = COS(X); 圖 積(X ,y1,x,y2) 你畫兩條線,但創建一個對象! – SD83 2014-12-06 23:20:02