2013-04-03 38 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