# How to calculate moving average in a matrix?

7 ビュー (過去 30 日間)
Andrea Finocchiaro 2015 年 10 月 8 日
コメント済み: Image Analyst 2017 年 4 月 7 日
Hi Guys, I have got a matrix :378x9. I need to calculate the moving average with a window size of 120(starting from row one). Can somebody help me please? By the way, i need to do it also for the covariance(i mean,"A MOVING COVARIANCE). Thank you very much Andrea
##### 2 件のコメントなしを表示なしを非表示
Joseph Cheng 2015 年 10 月 8 日
is this a window of 120x9 or are you looking to perform the averaging window per column.
Andrea Finocchiaro 2015 年 10 月 8 日
averaging window per column Joseph

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

### 採用された回答

Image Analyst 2015 年 10 月 8 日

Try conv2:
kernel = ones(120,1)/120;
output = conv2(yourSignal, kernel, 'valid');
Since the window does not leave the boundaries of your signal, of course the output signal will not have as many elements as your input signal.
##### 1 件のコメント-1 件の古いコメントを表示-1 件の古いコメントを非表示
Andrea Finocchiaro 2015 年 10 月 8 日
Thank you very much,your code runs very good! Do you think is possible to do the same also to the same for the covariance? I mean to compute the covariance matrix with a window of 120 months?A kind of "moving" covariance . I need these computation because I am working with portdolio optimization(like Markowitz).

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

### その他の回答 (1 件)

Grzegorz Knor 2017 年 4 月 7 日
From MATLAB R2016a there are functions movmean and movvar which do not require additional toolboxes.
##### 1 件のコメント-1 件の古いコメントを表示-1 件の古いコメントを非表示
Image Analyst 2017 年 4 月 7 日
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.

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

### カテゴリ

Help Center および File ExchangeGaussian Process Regression についてさらに検索

### Community Treasure Hunt

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

Start Hunting!

Translated by