2015-05-18 121 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