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

2 ビュー (過去 30 日間)
nlm
nlm 2020 年 4 月 15 日
回答済み: David Hill 2020 年 4 月 17 日
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 件のコメント
darova
darova 2020 年 4 月 17 日
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

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

採用された回答

David Hill
David Hill 2020 年 4 月 17 日
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;

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by