stairs(1:10)
给出了这个情节:
如果你不小心,你会错过最后一个数据点。显然,你可以这样解决这个问题:
stairs([1:10 10])
但是说真的吗?这让我很傻。我看到没有明显的“简单”解决方法,除了滚动我自己的楼梯功能。
mystairs = @(x)stairs([x x(end)])
但这并没有真正概括楼梯,只是为一个(非常有限的)用例修复它。我可以完成创建.m文件的所有工作,并正确地处理var args等。有更简单的方法吗?
答案 0 :(得分:0)
这就是图的本质:数据点代表观察或价值转换,你在最后一个观察点有一个转变。这是Matlab图的一般契约,最终数据点位于折线图的最后。执行[x x(end)]
的问题是,现在您正在绘制一个额外的虚假数据点,并且该行将在自变量X轴上从10扩展到11,这超出了数据点所覆盖的范围。可能会产生误导,特别是如果其他一些代码从图形句柄中取出Y数据并对其执行某些操作。
如何增加绘图的xlim
,以便最终的状态转换线不会落在图的边缘并被边框遮挡?