How to average columns of matrix without loop?

Hi! I have a rather big (about 1 000 000 X 10 000) matrix. I want to averaging n column blockes. For example:
n = 3;
A = [1 2 3 4 5 6 7 8 9;10 4 1 2 6 4 1 -4 0];
The result shuold be:
res =
2 5 8
5 4 1
I know it could be done with a for loop using mean, but in my code that would be inside of other for loops, which makes a huge runtime. What I basically need is a mooving averege without overleap, but I couldn't find such matlab function. I wonder, if there is a loop free solution for this.

 Respuesta aceptada

Más respuestas (1)

KSSV
KSSV el 6 de En. de 2021

1 voto

There are functions possible to do the said. Read about movemean, blockproc, reshape.

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Productos

Versión

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by