Matlab:如何从平均值和标准差绘制正态曲线

时间:2013-04-21 16:54:40

标签: matlab visualization

我有一个平均值和标准偏差,我想绘制一条普通曲线,轴上没有标签,没有网格线。我搜索过并发现了这个:

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

但是它有直方图条,网格线和轴标记。

谢谢

4 个答案:

答案 0 :(得分:4)

只需计算相应的Gaussian curve并绘制它。

实施例

让我们绘制一个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', [])

结果是:

result

答案 1 :(得分:3)

你为什么不用:

R = normrnd(mu,sigma)
normplot(R)

答案 2 :(得分:1)

既然你有平均值和标准偏差,为什么不能只绘制这个?

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

这是你感兴趣的功能。只需循环

范围内的值

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

答案 3 :(得分:0)

您可以使用Normal probability density function。结合Eitan T's answer,这将给出

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内置函数而不是自己编写它。