2016-12-15 156 views
0

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

我的问题:

  • 是否有在container.map或类似的东西,使适应locpeak与LOC-峰归属一致性的时尚的方式?

    • 我怎样才能将缩短的peak阵列绘制到原始信号图上?

非常感谢!

回答

2

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

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

这是你想要的吗?

+0

哇谢谢,不知道那个遮掩的主意! Tesekkürler! –

+0

如何进一步阅读这个想法?这项技术有没有术语? –

+1

Rica ederim :)其实这是在MATLAB中使用蒙版想法的非常常见的方法。我建议你阅读http://stackoverflow.com/questions/32379805/linear-indexing-logical-indexing-and-all-这个网站的索引进一步的信息。 –