How to find the mean after every n columns?

1 回表示 (過去 30 日間)
B.kun
B.kun 2015 年 3 月 4 日
コメント済み: B.kun 2015 年 3 月 4 日
Hi all
In order to find the mean column-wise, I know that we should code as follows:
Answer = nanmean(mymatrix,2); %%mymatrix has many columns %%Answer gives 1 column
Now I have a matrix of size 770 rows x 5760 columns. But I would like to find the mean after EVERY 4 columns and store them in a new matrix. So my final answer matrix will have 770 rows x 1440 columns. How can I do that? Any help is appreciated!
Thank you.

採用された回答

Sean de Wolski
Sean de Wolski 2015 年 3 月 4 日
This could be done with a simple for-loop or a slightly trickier reshape:
% Simple data
x = repmat(1:16,3,1)
nrows = 4; % rows to mean
meanby4 = squeeze(nanmean(reshape(x.',nrows,size(x,2)./nrows,[]))).'
  1 件のコメント
B.kun
B.kun 2015 年 3 月 4 日
Thank you! This works perfect! :)

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

その他の回答 (1 件)

Giorgos Papakonstantinou
Giorgos Papakonstantinou 2015 年 3 月 4 日
編集済み: Giorgos Papakonstantinou 2015 年 3 月 4 日
NewMatrix = mymatrix(:,1:4:end);
Youranswer = nanmean(NewMatrix , 2);
  2 件のコメント
Sean de Wolski
Sean de Wolski 2015 年 3 月 4 日
I think OP wants the mean of the first four columns, mean of the second four columns etc., not skipping 1:3, 5:7.
B.kun
B.kun 2015 年 3 月 4 日
Thank you. I tried this but it didn't give right results. (I guess it skipped my data in between every 1st and 4th column).

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

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by