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

这很好用,并且生成的图形像“实时”一样移动,但是由于数据集的离散性,它绘制的是单点而不是平滑线。我想知道是否有办法将当前图形输出转换为类似于平滑线图的东西?预先感谢您对此问题的任何帮助。

4

2 回答 2

0

尝试做

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

代替

 line(i,X(i));

编辑:你不需要坚持; 也可以用这种方法。

于 2015-05-18T17:04:06.523 回答
0

尝试使用绘图而不是线条。例如,

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

绘制带有十字标记的黑色实线。

这可能会很慢,因为图表是一遍又一遍地绘制的。使用hold on,可以改为仅绘制最后一条线段:

plot(i-1:i, X(i-1:i), 'k-x');
于 2015-05-18T17:05:38.853 回答