将离散数据绘制为折线图
Plotting discrete data as a line graph
我正在尝试在 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
这很好用,生成的图形如 "real time" 中那样移动,但是由于数据集的离散性质,它绘制的是单个点而不是平滑线。我想知道是否有办法将当前图形输出转换成类似于平滑线图的东西?预先感谢您在此问题上提供的任何帮助。
尝试
plot(1:i,X(1:i));
而不是
line(i,X(i));
编辑:您不需要坚持;用这个方法也可以。
尝试使用图而不是线。例如,
plot(1:i, X(1:i), 'k-x');
绘制带有十字标记的黑色实线。
这可能会很慢,因为要一遍又一遍地绘制图表。使用 hold on
,可以只绘制最后一条线段:
plot(i-1:i, X(i-1:i), 'k-x');
我正在尝试在 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
这很好用,生成的图形如 "real time" 中那样移动,但是由于数据集的离散性质,它绘制的是单个点而不是平滑线。我想知道是否有办法将当前图形输出转换成类似于平滑线图的东西?预先感谢您在此问题上提供的任何帮助。
尝试
plot(1:i,X(1:i));
而不是
line(i,X(i));
编辑:您不需要坚持;用这个方法也可以。
尝试使用图而不是线。例如,
plot(1:i, X(1:i), 'k-x');
绘制带有十字标记的黑色实线。
这可能会很慢,因为要一遍又一遍地绘制图表。使用 hold on
,可以只绘制最后一条线段:
plot(i-1:i, X(i-1:i), 'k-x');