MATLAB: Peaks over threshold counting events

peaksortthreshold

Hi, I have a dataset with values with a time step of 3h. I need to find the values over a threshold i.e 7. When the value goes over 7 for some time and then down the threshold again counts as 1 event. I would like to count the number of events over that threshold for the whole data set. Attached the data: first column with the values, second column with the time.
Thanks

Best Answer

Based on your requirements, I would do the following:
data = Hs_hr(:,1);
thr = 7;
% Set data smaller than threshold to 0.
data(data<thr) = 0;
% Find peaks.
[pks,locs] = findpeaks(data);
fprintf('Number of peaks found: %d', length(pks));
% Plot.
figure();
hold('on');
plot(data);
plot(locs,pks,'ro');
hold('off');
If you further wish to tune the peak detection, I recommend you read the documentation of the findpeaks function .