2

我有一个平均值和标准偏差,我想绘制一条轴上没有标签且没有网格线的正态曲线。我已经搜索并发现了这个:

r = mean + std.*randn(100,1);
histfit(r)

但这有直方图条、网格线和轴代码。

谢谢

4

4 回答 4

4

只需计算相应的高斯曲线并绘制它。

例子

让我们绘制一条均值为 4,标准差为 0.2 的高斯曲线:

mu = 4;                                %// Mean
sigma = 0.2                            %// Standard deviation

%// Plot curve
x = (-5 * sigma:0.01:5 * sigma) + mu;  %// Plotting range
y = exp(- 0.5 * ((x - mu) / sigma) .^ 2) / (sigma * sqrt(2 * pi));
plot(x, y)

%// Hide ticks
set(gca, 'XTick', [], 'XTickLabel', [], 'YTick', [], 'YTickLabel', [])

结果是:

结果

于 2013-04-21T17:03:37.493 回答
2

你为什么不使用:

R = normrnd(mu,sigma)
normplot(R)
于 2013-04-21T16:59:08.643 回答
0

既然你有均值和标准差,你为什么不能画这个?

https://en.wikipedia.org/wiki/Normal_distribution

这就是您感兴趣的功能。只需循环范围内的值

(mean - 3*stddev) <= x <= (mean + 3*stddev)

于 2013-04-21T16:58:14.440 回答
0

您可以使用正态概率密度函数。这与Eitan T 的回答相结合,将给出

mu = 4;                                %// Mean
sigma = 0.2                            %// Standard deviation

%// Plot curve
x = (-5 * sigma:0.01:5 * sigma) + mu;  %// Plotting range
plot(x, normpdf(x,mu,sigma));

%// Hide ticks
set(gca, 'XTick', [], 'XTickLabel', [], 'YTick', [], 'YTickLabel', [])

并会产生相同的数字。只是您将使用 MATLAB 内置函数,而不是自己编写代码。

于 2016-07-19T20:23:52.800 回答