Assign moving window average if 50 % of the values in the window are within a threshold

7 views (last 30 days)
Hi,
While doing a moving window average, if the 50 % values in that window are less than a certain threshold, how can one assign NaN to the average over that window.
mvavg = movmean(temp_ms, [left_window right_window],'omitnan',...
'Endpoints', 'discard');
How should I check for the threshold over the window ?
  1 Comment
darova
darova on 17 Apr 2020
What about this?
a = [1 2 3 4 4 0 2 1]
a>3
And the result
a =
1 2 3 4 4 0 2 1
ans =
0 0 0 1 1 0 0 0

Sign in to comment.

Accepted Answer

David Hill
David Hill on 17 Apr 2020
threshold=5;%whatever you want your threshold to be
threshold2= ;%window size/2
mvavg = movmean(temp_ms, [left_window right_window],'omitnan',...
'Endpoints', 'discard');
mvsum = movsum(temp_ms<threshold, [left_window right_window],'omitnan',...
'Endpoints', 'discard');
mvavg(mvsum<threshold2)=nan;

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by