What does mean(s(:)) do and the reason for using " : " for mean of a square matrix?
2 次查看(过去 30 天)
显示 更早的评论
SRAVAN KUMAR REDDY METTUPALLI
2017-9-1
评论: SRAVAN KUMAR REDDY METTUPALLI
2017-9-3
The working of the below mentioned and the reason for using " : " avg = mean(s(:));
0 个评论
采纳的回答
John D'Errico
2017-9-1
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!
更多回答(1 个)
Adam
2017-9-1
编辑:Adam
2017-9-1
(:) 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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Numeric Types 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!