绘制给定向量的平均值和标准差?

时间:2014-05-17 14:59:50

标签: matlab standard-deviation

我为此搜索过高低,似乎找不到任何人以最基本的形式提出这个问题。

我有一个向量x,我已经使用了mu mean和sigma std,我如何绘制这个以便我可以看到数据在表单中的传播钟形曲线?

我在MatLab帮助中遇到的最接近的是normspec,我想这不是我想要的。

编辑:

感谢所有回复。而不是留下多个评论,我想我会编辑我原来的帖子。

我基本上有我的列向量x,其中填充了(BPM)中的心率数据,所以我猜你是否正在绘制X轴,它需要的范围从0200。到目前为止,为了使我的结果更加切实,我一直在创建平均值和标准差的常数(如指出的那样)。我希望能够将这些数据可视化与此类似(类似于模糊逻辑工具箱中的gaussmf函数):

enter image description here

你的一个答案可能是正确的,但我在编辑这篇文章时不确定。对不起,我对数学方面一无所知。我正在学习概率和统计学课程,但到目前为止,我的源文件只是将标准差引用为“传播”。

2 个答案:

答案 0 :(得分:1)

钟形曲线的等式如下:

f(x, mu, sigma) = (1/(sigma*sqrt(2*pi)))*e^(-(x-mu)^2/(2*sigma^2))

我无法找到一种方法将其放入一个更容易阅读的数学方程式中,所以如果你感兴趣的话,这里是链接:http://en.wikipedia.org/wiki/Normal_distribution

您找到的值(mu和sigma)是常量。要使其适合钟形曲线,您需要模拟曲线。等式中的x应该只是一个要映射的向量或数组(这取决于你的数据),应该只是原始数据的长度。

希望这是有道理的。

答案 1 :(得分:1)

使用hist命令。 @OliCharlesworth是对的。您可以使用hist(x,nbins);指定所需的容器数量。

例如,由于您的BPM来自[0,200],您可以拆分直方图,以便在20个BPM间隔内对其进行分箱,因此您需要10个分箱。因此,请尝试hist(x, 10);

直方图基本上是频率计数器。通过上面的示例,您正在做的是收集数据,以便它们落入某些容器中。如果我们选择10个分箱,这意味着您将拥有10个频率分箱,以便第一个分区显示[0, 19]之间的BPM数量,第二个分配在[20, 39]之间等等。您拥有的垃圾箱越多,连续垃圾箱之间的间距就越小。

我不知道你的应用程序需要多少个垃圾箱,但要使用nbins参数,看看你得到了什么。