How do I get the mean of always 4 columns
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Antonio Melieni
el 15 de Abr. de 2019
Comentada: Antonio Melieni
el 17 de Abr. de 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?
0 comentarios
Respuesta aceptada
madhan ravi
el 15 de Abr. de 2019
Editada: madhan ravi
el 15 de Abr. de 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 comentarios
Matt J
el 15 de Abr. de 2019
Both the permute operation and the transpose operation allocate arrays the same size as A. sepblockfun avoids this.
madhan ravi
el 15 de Abr. de 2019
@Antonio:Matt‘s file exchange is Perfect why not use his solution then?
Más respuestas (1)
Matt J
el 15 de Abr. de 2019
Editada: Matt J
el 15 de Abr. de 2019
One way is using sepblockfun, downloadable from here
Then you would do,
result = sepblockfun(yourArray, [1,4],'mean');
3 comentarios
Catalytic
el 15 de Abr. de 2019
Editada: Catalytic
el 15 de Abr. de 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.
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!