Simple question about Standard Deviation.

63 次查看(过去 30 天)
I have a number of data points, lets say in a vector v, and lets say there are "num" of them. If I write sd = std(v) did it assume a sample i.e. it used num-1 (in the denominator) or did I get a population standard dev i.e. it used num? How can I request one or the other?

采纳的回答

the cyclist
the cyclist 2017-1-8
编辑:the cyclist 2017-1-8
By default, it will give the sample standard deviation. Call it as
std(x,1)
to get the population. That is explained in the documentation for std, in the section describing the input argument weight.
  2 个评论
Helen Kirby
Helen Kirby 2017-1-8
Thank you very much. I did actually look under "doc standard deviation" and couldn't find the answer. But thank you for answering my question.

请先登录,再进行评论。

更多回答(1 个)

Helen Kirby
Helen Kirby 2017-1-8
Could I ask yet another question on this theme - and yes I have read the documentation and it doesn't answer this question. Say if you have x = [1,2,3,4,5,6] and w = [5,7,10,8,12,3] and we want to find the weighted std for a population, how do I write the command for a POPULATION? I understand for a sample it is:
StdSamp = std(x,w) If you put the 1 as the 3rd parameter, it does not interpret it as pop.
  1 个评论
Walter Roberson
Walter Roberson 2017-1-9
You cannot combine the two weighting schemes.
std(x) is normalized by N-1. std(x,1) is normalized by N. std(x,1) works out to be the same as std(x, ones(size(x)) .
std(x,w,1) means to proceed along dimension 1. Your data was row vectors, so that did not work. But you could use
std(x(:), w(:), 1)
if you had particular reason for wanting to specifically process along the first dimension.

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by