How do I get the mean of always 4 columns
1 回表示 (過去 30 日間)
古いコメントを表示
Hi,
I have a 527040 x 16 double array
I need the row mean of always 4 clomuns
So I need the row mean of column 1:4 5:8 9:12 13:16
So I want the mean([1:4],2) and mean([5:8],2)
but i dont want to wirte it down in that way. I need an more automatic way to do it
any ideas?
0 件のコメント
採用された回答
madhan ravi
2019 年 4 月 15 日
編集済み: madhan ravi
2019 年 4 月 15 日
AA=permute(reshape(A.',4,1,[]),[2,1,3]); % where A is size 527040 X 16
AAA=squeeze(mean(AA));
% if you want to reshape it as matrix then
% reshape(AAA,size(A,1),[]) %% edit removed transpose
9 件のコメント
Matt J
2019 年 4 月 15 日
Both the permute operation and the transpose operation allocate arrays the same size as A. sepblockfun avoids this.
その他の回答 (1 件)
Matt J
2019 年 4 月 15 日
編集済み: Matt J
2019 年 4 月 15 日
One way is using sepblockfun, downloadable from here
Then you would do,
result = sepblockfun(yourArray, [1,4],'mean');
3 件のコメント
Catalytic
2019 年 4 月 15 日
編集済み: Catalytic
2019 年 4 月 15 日
@Antonio,
The only way I can Matt J's one line solution as being "too complicated" is that this is homework. So, you're not allowed to use third-party routines like sepblockfun as is, and it is a tedious matter for you to try to decipher what it is doing and adapt it to your assignment.
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!