What does mean(s(:)) do and the reason for using " : " for mean of a square matrix?
2 views (last 30 days)
Show older comments
SRAVAN KUMAR REDDY METTUPALLI
on 1 Sep 2017
Commented: SRAVAN KUMAR REDDY METTUPALLI
on 3 Sep 2017
The working of the below mentioned and the reason for using " : " avg = mean(s(:));
0 Comments
Accepted Answer
John D'Errico
on 1 Sep 2017
Well, what does mean do, when applied to a matrix? TRY IT!!!!!!!!! You will learn by trying things.
magic(3)
ans =
8 1 6
3 5 7
4 9 2
>> mean(magic(3))
ans =
5 5 5
>> mean(magic(3),2)
ans =
5
5
5
So when you apply mean to a MATRIX, it finds the mean across rows, or down columns.
When you apply mean to a vector, it finds the mean of the vector elements.
mean(1:10)
ans =
5.5
So how can you find the mean of an entire matrix?
Can you convert a matrix to a vector? If so, then you can just use mean.
What does s(:) do? It converts a matrix to a column vector. Therefore, you should now know what mean(s:)) does, and why it works.
When you don't understand some code in MATLAB, take it apart, one level at a time. Think what each part does. And if you don't know how something works, EXPERIMENT!
More Answers (1)
Adam
on 1 Sep 2017
Edited: Adam
on 1 Sep 2017
(:) reshapes the array to a column vector, as described in
doc colon
This is done when taking the mean of a 2d image as a simple way to avoid having to do
mean( mean( s ) )
In the case of mean and some other functions there is a special builtin function
doc mean2
but I always use the colon notation personally.
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!