2016-12-15 120 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-這個網站的索引進一步的信息。 –