在二维图中标记一维数组

Mark 1D-array in a 2D-plot

我在 Matlab 中有一个嘈杂的周期信号,我在 [peak loc]=findpeaks(signal) 的帮助下从中提取了峰值。然而,不切实际的异常值也在 peak 数组中。 我为 peak 设置了最小值和最大值,因此得到了一个较短的 peak 数组。现在我想将原始 peak 的这个较短的子集标记为原始 plot(loc,peak),但我会得到一个错误,因为 loc 保持其原始长度。

我的问题:

非常感谢!

我想你可以用下面的代码解决你的问题:

[peak,loc] = findpeaks(signal);
max_thr = 2;
min_thr = 1e-5;    
mask = peak>min_thr&peak<max_thr;
plot(loc(mask),peak(mask))

这是你想要的吗?