在2D图中标记1D阵列

时间:2016-12-15 00:16:05

标签: arrays matlab dictionary plot marker

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

我的问题:

  • 有没有像container.map或类似方法那样允许locpeak一致的loc-peak赋值的一致性?

    • 如何将缩短的peak数组绘制到原始信号图上?

非常感谢!

1 个答案:

答案 0 :(得分:2)

我认为您可以使用以下代码解决您的问题:

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

这是你想要的吗?