2013-03-23 140 views
-1

假設我有在F矩陣是這樣的:尋找最大峯值的位置在情節與MATLAB

F = 
0, 0, 106, 10, 14, 20, 20, 23, 27, 26, 28, 28, 28, 23 
     |      |   | 
    peak      peak   peak 

我使用的命令plot(F)。我想要獲取數據中峯值的索引。

這是我到目前爲止的代碼,這是行不通的:

[max_x,index_x]=max(x); 
e=index_x; 
for i=1:11 
    index_x(i)=e; 
    e=e+16; 
end 

是否有MATLAB內置函數,這將幫我這個忙?

回答

4

使用findpeaks函數(信號處理工具箱)。

[peakVal,peakLoc]= findpeaks(x); 
+0

@@ kl3755,我添加了一個例子,我要找的答案。我希望它能澄清一點。 – user2201486 2013-03-23 07:05:09

+2

@ user2201486如果希望峯值具有最小高度,則使用可選的「閾值」或「minpeakheight」參數。 – erikced 2013-03-23 08:40:57

+0

@erikced我想擁有絕對峯值的所有「x」值。就像我在問題結尾的實例中所顯示的那樣。 – user2201486 2013-03-23 11:34:46

0

那麼這裏就是我喜歡:

[maxval maxloc] = max(A(:)); 
+0

爲了使這個更好的答案,你能解釋爲什麼你更喜歡,利弊等?謝謝! – Rup 2015-05-01 10:04:29