Averaging specified number of points around the minimum value

조회 수: 1 (최근 30일)
Meghan
Meghan 2024년 12월 3일
댓글: Meghan 2024년 12월 3일
Hi,
I'm trying to average a specified number of points around the minimum value of my data (ex. 5 points to the left and 5 points to the right) and cannot seem to find a solution. I'm just not sure how to create that range.
I'm assuming it would be something along the lines of mean(min( %my range)).
Thanks in advance for any help!
  댓글 수: 2
Torsten
Torsten 2024년 12월 3일
So you have an array "data", the minimum is at data(ix) for some index "ix" and you want to compute the average of [data(ix-5:ix-1),data(ix+1:ix+5)] ?
Meghan
Meghan 2024년 12월 3일
Yes, thank you! Why include the ix+/-1?

댓글을 달려면 로그인하십시오.

채택된 답변

Torsten
Torsten 2024년 12월 3일
이동: Torsten 2024년 12월 3일
data(ix-5:ix-1) are the 5 points left to the minimum, data(ix+1:ix+5) are the five points right to the minimum.
So the code should be
[~,ix] = min(data);
max_left = min(5,ix-1);
max_right = min(5,numel(data)-ix);
avg = mean([data(ix-max_left:ix-1),data(ix+1:ix+max_right)])

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by