You can use blockproc() if you have the IMage Processing Toolbox. It will process a matrix in blocks. You can either have the blocks move over a certain distance (so they overlap), but the usual way is to have the processing window "jump" to the next block location over.
I'm attaching several blockproc demos. I'm using them to process images but it can be just a general purpose matrix instead.
You can have the operation be whatever you want : mean, median, standard deviation, gradient, or some custom function of your own.
In short, here's the relevant snippet for taking the mean in 80x80 blocks:
meanFilterFunction = @(theBlockStructure) mean(theBlockStructure.data(:));
blockyImage = blockproc(grayImage, blockSize, meanFilterFunction);
[rows, columns] = size(blockyImage)