2014-12-06 85 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