find local max in time window

2 Ansichten (letzte 30 Tage)
Hasan alomari
Hasan alomari am 26 Apr. 2017
Beantwortet: Hasan alomari am 5 Mai 2017
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

Akzeptierte Antwort

Greg Dionne
Greg Dionne am 2 Mai 2017
If you have a recent copy of MATLAB, try using movmax().
  2 Kommentare
Hasan alomari
Hasan alomari am 4 Mai 2017
it will give the max value but without the location
Greg Dionne
Greg Dionne am 4 Mai 2017
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')

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Hasan alomari
Hasan alomari am 5 Mai 2017
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

Community Treasure Hunt

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

Start Hunting!

Translated by