how to take the average of a matrix of any size

Answers (2)

mean()
X = randn(100,100);
mean(mean(X))
or
mean(X(:))

4 Comments

im sorry i meant matrix of any size
X = rand(3,3,3,3,3);
If you want the means of the columns or the rows, you can use mean() with the dimension argument
X = mean(X,1);
or
X = mean(X,2);
Wayne's answer is for matrix of any size. Just try it out.

Sign in to comment.

mean(X(:))
or for speed:
N = numel(X);
sum(reshape(X,N,1))/N;
or for fun:
eval([repmat('mean(',1,ndims(X)) 'X' repmat(')',1,ndims(X)) ';']);

1 Comment

A strange definition of "fun".
I think, that "sum(X(:))/numel(X)" is more fun, it is even _nice_.

Sign in to comment.

Categories

Tags

Asked:

on 14 Mar 2012

Community Treasure Hunt

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

Start Hunting!