Standard deviation of all matrix elements (single value)

I have a random matrix X and I am looking for the standard deviation considering all elements; however I am asked (by a text book, learning Matlab) not to use loops. The result should be one single value.
std(X) gives a matrix of standard deviation of all columns which is not what I am looking for. (something corresponding to m=mean(mean(X)) it is not working for the standard deviation)
PS: sorry for asking this simple question; I did some search on this topic but couldn't find useful hints.
Thank you for your help!

답변 (3개)

Adam
Adam 2015년 3월 2일
편집: Adam 2015년 3월 2일
std( X(:) )
should give you the standard deviation of all elements in a matrix, X, of any shape.
This is also generally better for mean since it works for any dimensionality rather than mean( mean( X ) ) which is hard-coded as 2d.

댓글 수: 1

Please add a comment to an answer rather than a new answer (it is a mistake many make though, not just you!).
The syntax
X(:)
simply collapses your array into a column so that the std command (or any other similar command) will produce a single answer as it would on a normal column array. For statistics where the 2d or n-d structure of the data is irrelevant this works well. Obviously it needs more manipulation for functions where the 2d structure matters.

댓글을 달려면 로그인하십시오.

Torsten
Torsten 2015년 3월 2일

0 개 추천

Use "reshape" to get an (N*M,1) column vector from the (N,M)-matrix.
Best wishes
Torsten.
Joachim Schmid
Joachim Schmid 2015년 3월 2일

0 개 추천

Thank you very much Torsten and Adam! Adam, now I have to understand the command.

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

질문:

2015년 3월 2일

댓글:

2015년 3월 2일

Community Treasure Hunt

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

Start Hunting!

Translated by