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!