2015-05-18 184 views
0

我想模擬MATLAB中的實時繪圖以顯示ECG信號。我想用一個小數據集來測試我的想法。我創建了一個名爲Y的矩陣,其中包含從0到25 * pi的值,並且希望繪製sin(Y),並將每個數據點繪製成實時繪圖。這是我寫的代碼:將離散數據繪製爲線圖

Y= [0:0.1:25*pi]; 
X = sin(Y); 
[a,b] = size(Y); 

for i = 1:b 
hold on; 
line(i,X(i)); 
drawnow; 
pause(0.01); 
end 

這種運作良好,併爲「實時」結果圖形的移動,但是由於數據的離散性將其繪製單一的點,而不是一個流暢的線條。我想知道是否有辦法將當前圖形輸出轉換成類似於平滑線條圖的東西?提前感謝您對此問題的任何幫助。

回答

0

嘗試做

plot(1:i,X(1:i)); 

,而不是

line(i,X(i)); 

編輯:你不會需要做的堅持;用這種方法。

+0

非常感謝你,它現在很好用! – lindziwiggins

0

嘗試使用情節而不是行。例如,

plot(1:i, X(1:i), 'k-x'); 

繪製帶有交叉標記的黑色實線。

這可能會非常緩慢,因爲圖形一遍又一遍地繪製。用hold on,可以代之以僅繪製最後一條線段:

plot(i-1:i, X(i-1:i), 'k-x'); 
+0

非常感謝您的幫助! – lindziwiggins