2013-04-03 114 views
0

如果我有如下图所示:使用Matlab将离散点连接在一个图中?

enter image description here

的代码创建

for t=1:length(s) % s is a struct with over 1000 entries 
    plot(t,r1,'k'); % r1 = (0,100,150,170) + 1050 
    plot(t,r2,'g'); % r2 = (0,300,350,370) + 1050 
    plot(t,r3,'b'); % r3 = (0,200,250,270) + 1050 
    plot(t,r4,'m'); % r4 = (0,1000,1250,1500) + 1050 
    plot(t,max,'r'); % max = 2000 
end 

每个点实际上是从1050传播到自己的当前值。但是你不能以这种方式看到它,因此我希望绘制一条线来连接它们。

如何将同一条线的离散点连接在一起?

+0

什么是'r1' ...'r4'和'max'?他们依赖's'吗?你想要水平线,垂直线还是其他东西? – 2013-04-03 21:25:36

+0

@ChrisTaylor更新的问题。当它们从各种值移动时,将它们连接在一起...... 0-> 100将在0和100处创建两个点,并且在视觉上很难看清。因此,连接这些对角线的对角线也会使视觉更好地理解正在发生的事情 – NLed 2013-04-03 21:34:33

+0

我可能会误解,但为什么不只是创建一个包含所有想要绘制的值的新矢量,并且一次绘制整个事件?然后MATLAB会为你连接它们。或者,您可以使用干图。另外,使用max作为变量名是个不错的主意,因为它是内置函数。 – wakjah 2013-04-03 21:50:53

回答

1

这是否给出你想要的结果?

for t=1:length(s) % s is a struct with over 1000 entries 
    a(t,:)=r1; % r1 = (0,100,150,170) + 1050 
end 
plot(a) 
+0

完美谢谢你!你能解释为什么这是行得通的吗?我的方法怎么样? – NLed 2013-04-03 22:32:22

+1

您的方法为循环的每次迭代绘制单独的独立点。如果你像我一样首先创建一个数组,然后绘制它,Matlab知道如何连接点。 – Marius 2013-04-03 22:35:52

+0

我注意到,这一次打印两个结果。为什么?例如在t = 1时,a(t,:)= [0 100],而不仅仅是100 ... – NLed 2013-04-07 20:57:24