Filter löschen
Filter löschen

How do I get the mean of always 4 columns

2 Ansichten (letzte 30 Tage)
Antonio Melieni
Antonio Melieni am 15 Apr. 2019
Kommentiert: Antonio Melieni am 17 Apr. 2019
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?

Akzeptierte Antwort

madhan ravi
madhan ravi am 15 Apr. 2019
Bearbeitet: madhan ravi am 15 Apr. 2019
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 Kommentare
Matt J
Matt J am 15 Apr. 2019
Both the permute operation and the transpose operation allocate arrays the same size as A. sepblockfun avoids this.
madhan ravi
madhan ravi am 15 Apr. 2019
@Antonio:Matt‘s file exchange is Perfect why not use his solution then?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Matt J
Matt J am 15 Apr. 2019
Bearbeitet: Matt J am 15 Apr. 2019
One way is using sepblockfun, downloadable from here
Then you would do,
result = sepblockfun(yourArray, [1,4],'mean');
  3 Kommentare
Catalytic
Catalytic am 15 Apr. 2019
Bearbeitet: Catalytic am 15 Apr. 2019
@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
Antonio Melieni am 17 Apr. 2019
@Matt
Thanks for your function and your help.
Will use your sultion :)

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Produkte


Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by