在 Matlab 中绘制仅具有水平和垂直连接的数据

Plotting data with only horizontal and vertical connections in Matlab

我得到了什么

我在慢跑期间获得了两个瞬时步频数据源:

我试图将两者绘制在一起以获得直观的比较。当前图如下所示(橙色来自步幅传感器,蓝色来自算法):

您可以看到,计算出的数据总是直角 (90°),并且没有将实际数据点与线性函数连接起来。这准确地反映了您在查看当前步频时会看到的内容。每次更新时,该值都会立即更改为一个新值。它看起来是这样的,因为我故意将具有相同 x 坐标(时间戳)的两个数据点放入我的数据集中。这可能类似于以下代码:

% on new cadence
c(i) = [t old_cadence];
c(i+1) = [t new_cadence];

问题

所以我想让步幅传感器线图看起来和我自己的数据一样。即,它应该只包括垂直和水平连接线。 plot 函数中是否有一种模式可以自动执行此操作,或者我将如何执行此操作? (我显然想要比遍历元素更好的东西)

提前感谢您的任何提示!

您正在寻找这样的东西吗?:

rng(620)
n = 10;
y = rand(1,n);
x = 1:n;

yy = nan(1,2*n-1);
yy(2:2:end) = y(1:end-1);
yy(1:2:end) = y;

xx = nan(1,2*n-1);
xx(2:2:end) = x(2:end);
xx(1:2:end) = x;

plot(x,y,'--o')
hold on
plot(xx,yy,'red')

您正在查找 stairs 函数:

y = randi([3,8],1,20);
x = 1:20;

stairs(x,y)
ylim([0,10])