MATLAB code for peak Detection in a vector

Description

Finds the local maxima and minima (“peaks”) in the vector V. 

A point is considered a maximum peak if it has the maximal value, and was preceded (to the left) by a value lower by DELTA. MAXTAB and MINTAB consists of two columns.

Column 1 contains indices in V, and column 2 the found values.

 

.

maxtab = [];
mintab = [];
v = v(:); % Just in case this wasn't a proper vector
if (length(delta(:)))>1
error('Input argument DELTA must be a scalar');
end
if delta <= 0
error('Input argument DELTA must be positive');
end
mn = Inf; mx = -Inf;
mnpos = NaN; mxpos = NaN;
lookformax = 1;
for i=1:length(v)
this = v(i);
if this > mx, mx = this; mxpos = i; end
if this < mn, mn = this; mnpos = i; end
if lookformax
if this < mx-delta
maxtab = [maxtab ; mxpos mx];
mn = this; mnpos = i;
lookformax = 0;
end
else
if this > mn+delta
mintab = [mintab ; mnpos mn];
mx = this; mxpos = i;
lookformax = 1;
end
end
end
https://matlab1.com/shop/arduino-code/arduino-code-for-detection-of-muscle-fatigue-and-muscle-growth/
https://matlab1.com/shop/matlab-code/matlab-code-for-basketball-players-detection-and-classification-in-a-video/
http://www.cplusplus.com/forum/beginner/219698/

Reviews

There are no reviews yet.

Be the first to review “MATLAB code for peak Detection in a vector”
Category: