find local max in time window

1 回表示 (過去 30 日間)
Hasan alomari
Hasan alomari 2017 年 4 月 26 日
回答済み: Hasan alomari 2017 年 5 月 5 日
am trying to find the local max in time window , i know that I have to define part from the signal then use the findpeaks built in function then take the max value of it.
% code
pks_value=[];this to store the max value from the peaks
step=200;
pcg=pcg_lp2';
for i=1:200:N
temp=pcg(i:i+step);
[pks,locs] = findpeaks(temp);
pks_value(i)=max(pks);
end
it give me the error msg "Index exceeds matrix dimensions. " so how to fix it , what to change

採用された回答

Greg Dionne
Greg Dionne 2017 年 5 月 2 日
If you have a recent copy of MATLAB, try using movmax().
  2 件のコメント
Hasan alomari
Hasan alomari 2017 年 5 月 4 日
it will give the max value but without the location
Greg Dionne
Greg Dionne 2017 年 5 月 4 日
This should get you started:
x = randi(10,150,1);
tmp = movmax(x,5);
imvmax = find(x==tmp);
mvmax = x(imvmax);
plot(1:length(x),x,'-',imvmax,mvmax,'o')

サインインしてコメントする。

その他の回答 (1 件)

Hasan alomari
Hasan alomari 2017 年 5 月 5 日
thank you i did it using the max which also return the value and the location, but will try this also to see if I will obtain the same result

カテゴリ

Help Center および File ExchangeDescriptive Statistics についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by