# Create a moving average

조회 수: 638(최근 30일)
Dirk 28 Jun 2013
댓글: arman arefi 27 Mar 2020
Hi There, How can I calculate a moving average for a column of data. For instance i want to average the 50 points either side of each data point in my column. Thanks
##### 댓글 수: 1표시숨기기 없음
arman arefi 27 Mar 2020
You can use Moving Average Function in the FileExchange. Please find the link below:

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

### 채택된 답변

Andrei Bobrov 28 Jun 2013
L = filter(ones(101,1)/101,1,[A(:) zeros(50,1)]);
out = L(51:end);

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

### 추가 답변(5개)

Image Analyst 28 Jun 2013
편집: Image Analyst 28 Jun 2013
For a 1D column vector:
movingAverage = conv(yourSignal, ones(101,1)/101, 'same');
For a 2D array of columns:
movingAverage = conv2(yourSignal, ones(101,1)/101, 'same');
If you don't want the central pixel to be included in the average and have ONLY the 50 on either side, use
kernel = ones(101,1)/100;
kernel(51) = 0;
movingAverage = conv(yourSignal, kernel, 'same');
Same for a 2D matrix except use conv2 instead of conv. conv() and conv2() are highly optimized and very fast.
##### 댓글 수: 4표시숨기기 이전 댓글 수: 3
Image Analyst 30 Nov 2017
Yes.

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

Grzegorz Knor 7 Apr 2017
From MATLAB R2016a there is a function movmean which does not require additional toolboxes.
##### 댓글 수: 1표시숨기기 없음
Image Analyst 7 Apr 2017
True, and it offers some edge handling options ('shrink', 'discard', 'fill') that conv2() does not have.
conv2() also does not require any toolboxes because it's in base MATLAB.

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

Marc 28 Jun 2013
If you have the financial toolbox, doc movavg()....
[Short, Long] = movavg(Asset, Lead, Lag, Alpha)
##### 댓글 수: 0표시숨기기 이전 댓글 수: -1

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

the cyclist 28 Jun 2013
This page of the MATLAB documentation has an example of using the filter() command to calculate a moving average:
##### 댓글 수: 1표시숨기기 없음
Dirk 28 Jun 2013
Thanks. The filter function is set to average data from the previous n measurements. Is there a simple way to specify a different averaging criteria? Thanks

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

Jan 28 Jun 2013
There are many moving average filters in the FileExchange. Whenever a standard problem occurs, looking in the FEX is a good idea:

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

### Community Treasure Hunt

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

Start Hunting!

Translated by