如何在 Matlab 中绘制这种平滑概率分布?

发布于 2024-10-31 23:38:54 字数 66 浏览 0 评论 0原文

在此处输入图像描述

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

东走西顾 2024-11-07 23:38:54

如果您有 PDF 方程,您可以简单地将其绘制为指定的 x 值。例如,

正态分布

pNormal=@(x)1/sqrt(2*pi)*exp(-(x.^2)/2);
x=linspace(-4,4,1e3);
plot(x,pNormal(x));

对数正态分布

pLogNormal=@(mu,sigma,x)1./(x*sigma*sqrt(2*pi)).*exp(-((log(x)-mu)./(sqrt(2)*sigma)).^2);
x=linspace(0,10,1e3);
mu=0;sigma=1;
plot(x,pLogNormal(mu,sigma,x));

您可以改变 sigmamux 根据您的需要。对数正态分布是针对x>0定义的。

If you have the equation to the PDF, you can simply plot it for specified values of x. For example,

Normal distribution

pNormal=@(x)1/sqrt(2*pi)*exp(-(x.^2)/2);
x=linspace(-4,4,1e3);
plot(x,pNormal(x));

Log-Normal distribution

pLogNormal=@(mu,sigma,x)1./(x*sigma*sqrt(2*pi)).*exp(-((log(x)-mu)./(sqrt(2)*sigma)).^2);
x=linspace(0,10,1e3);
mu=0;sigma=1;
plot(x,pLogNormal(mu,sigma,x));

You can vary sigma, mu and x according to your needs. The log-normal distribution is defined for x>0.

掩饰不了的爱 2024-11-07 23:38:54

这是一个使用内核平滑器的示例。 (以防万一您不知道什么分布描述了您的数据样本)

% generate some random data
X1 = 10 + randn(100,1);
X2 = 15 + 2*randn(75,1);
X3 = 25 + 3*randn(125,1);
X = vertcat(X1,X2,X3);

% use a kernel smoother to model X
foo = fitdist(X,'kernel')

% inspect the methods of foo
methods(foo)

% Plot the pdf of foo
range = linspace(min(X), max(X), 100);
bar = pdf(foo, range)
plot(range, bar)

Here is an example that uses a kernel smoother. (Just in case you don't know what distribution describes your data sample)

% generate some random data
X1 = 10 + randn(100,1);
X2 = 15 + 2*randn(75,1);
X3 = 25 + 3*randn(125,1);
X = vertcat(X1,X2,X3);

% use a kernel smoother to model X
foo = fitdist(X,'kernel')

% inspect the methods of foo
methods(foo)

% Plot the pdf of foo
range = linspace(min(X), max(X), 100);
bar = pdf(foo, range)
plot(range, bar)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文