MATLAB Answers

Translated by

このページのコンテンツは英語から自動翻訳されています。自動翻訳をオフにする場合は「<a class="turn_off_mt" href="#">ここ</a>」をクリックしてください。

0

How do I get the mean of always 4 columns

Antonio Melieni さんによって質問されました 2019 年 4 月 15 日
最新アクティビティ Antonio Melieni さんによって コメントされました 2019 年 4 月 17 日
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 件のコメント

サインイン to comment.

2 件の回答

回答者: 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 件のコメント

Antonio Melieni 2019 年 4 月 15 日
The transpose doesnt help.... I get an 4 X 527040 array then....
Matt J
2019 年 4 月 15 日
Both the permute operation and the transpose operation allocate arrays the same size as A. sepblockfun avoids this.
madhan ravi
2019 年 4 月 15 日
@Antonio:Matt‘s file exchange is Perfect why not use his solution then?

サインイン to comment.


回答者: 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 件のコメント

Antonio Melieni 2019 年 4 月 15 日
Thanks, but thats a bit to complicated :)
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.
Antonio Melieni 2019 年 4 月 17 日
@Matt
Thanks for your function and your help.
Will use your sultion :)

サインイン to comment.



Translated by