Hi everyone,
I have a matrix G containing a number of data points (say 5000 for the sake of this example). I would like to create a new matrix, K consisting of only 50 elements, so that every element is the average of the corresponding 100 elements in matrix G.
For example the third element of K should be the mean of elements 100 to 150 of G.
Any way to quickly do that?

 採用された回答

Jan
Jan 2018 年 12 月 12 日
編集済み: Jan 2018 年 12 月 12 日

0 投票

G = rand(5000, 3); % "data points" is not clear
N = 100;
siz = size(G);
GG = reshape(G, [N, siz(1)/N, siz(2)]);
R = reshape(sum(GG, 1) / N, siz(1)/N, siz(2));
If the length of the first dimension is not a multiple of N, you might want to crop the input at first.
R = BlockMean(G, N, 1) / N;

その他の回答 (0 件)

カテゴリ

質問済み:

2018 年 12 月 12 日

編集済み:

Jan
2018 年 12 月 12 日

Community Treasure Hunt

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

Start Hunting!

Translated by