How do I append a row average to a new matrix

I have a 500x500 size matrix and I am trying to get the average of every 5 values in a row to make it a 100x100 matrix. How do I do that?
foo = randi(500,500)

3 Comments

If you take the average of each row you will get a <500x1> matrix. To understand, I need a more detailed description of your problem.
"every 5 values in a row" that will give you a <500x100> matrix. Do you mean: and every five values in each column? Like average of every <5x5> submatrix.
@per isakson Im so sorry, yes thats what I mean.

Sign in to comment.

 Accepted Answer

With a little bit of guessing. Does this answer your question?
%%
foo = randi(500,500);
cac = mat2cell( foo, 5*ones(100,1), 5*ones(100,1) );
num = cellfun( @(sub) mean(sub(:)), cac );
num is <100x100>

More Answers (0)

Categories

Asked:

on 22 Feb 2021

Commented:

on 22 Feb 2021

Community Treasure Hunt

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

Start Hunting!