我试图在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 :(得分:0)
尝试做
plot(1:i,X(1:i));
而不是
line(i,X(i));
编辑:你不需要坚持;使用这种方法。
答案 1 :(得分:0)
尝试使用plot而不是line。例如,
plot(1:i, X(1:i), 'k-x');
绘制带有十字标记的纯黑线。
这可能非常慢,因为图表反复绘制。使用hold on
,可以改为仅绘制最后一个线段:
plot(i-1:i, X(i-1:i), 'k-x');