㈠ 如何用MATLAB估计概率密度函数
函数:ksdensity
功能:根据给定的数据,估计概率密度分布
示例:
1. 正态分布
x = randn(1,100000);
[y,xi] = ksdensity(x);
plot(xi,y, 'bo')
% 验证
hold on
yn=normpdf(xi,0,1); % 标准正态分布的概率密度函数
plot(xi,yn,'b')
2. 瑞利分布
x = abs(randn(1,10000) + 1i*randn(1,10000));
[y,xi] = ksdensity(x);
plot(xi,y, 'bo')
% 验证
hold on
b = 1;
yn = zeros(size(xi));
k=find(b > 0 & xi >= 0);
if any(k),
xk = xi(k);
% 瑞利分布的概率密度函数
yp(k) = (xk ./ b^2) .* exp(-xk.^2 ./ (2*b^2));
end
plot(xi,yp,'b')
3. 莱斯分布?
N = 100000;
K = 0.5;
const=1/(2*(K+1));
x1=randn(1,N);
x2=randn(1,N);
x=sqrt(const*((x1+sqrt(2*K)).^2+x2.^2));
[y,xi] = ksdensity(x);
plot(xi,y, 'bo')
% 验证
hold on
sig = 1;
v = 1;
yn = zeros(size(xi));
k=find(b > 0 & xi >= 0);
if any(k),
xk = xi(k);
% Rician分布的概率密度函数
yp(k) = (xk ./ sig^2) .* exp((-xk.^2 + v.^2) ./ (2*sig^2)) .* besselj(0, (xk .*v ./ sig^2));
end
plot(xi,yp,'b')
㈡ matlab中的 ksdensity求得概率密度为什么大于1
ksdensity求的的是概率密度,但是用了离散的方法表示,要乘以离散间隔才是概率。
比如:[f,xi] = ksdensity(x,[0:0.01:1])
得到的f是区间[xi,xi+0.01]的概率密度,如果要得到xi的概率,那么可以用f*0.01来近似。
㈢ 请教matlab函数ksdensity的用法
ksdensity函数用于计算一维或二维核密度或分布估计。其主要使用格式:
[F,XI]=ksdensity(X) %计算的概率密度估计在向量或两列的矩阵X (ksdensity样本)评价
100点密度估计(或二元数据的900点密度估计)的数据。
式中:F——密度值的向量。;XI——100(或900)点的集合。
例1:
x = [randn(30,1); 5+randn(30,1)];
[f,xi] = ksdensity(x);
plot(xi,f);
xlabel('xi'),ylabel('y')
㈣ matlab 如何画出 一组数据 最可能的概率密度图 用了ksdensity ,但是老是提示有问题!先谢了。
你直接写函数ksdensity,不要有赋值。如果你写f,x,u] = ksdensity(A),后面加一个plot(x,f),直接用ksdensity(A)就可以得到图。
㈤ matlab画已知数据的分布曲线
建议你参考一下MATLAB的数理统计工具箱,里面有很多具体的应用例子和函数。
我这里给出一个ksdensity函数
调用方式 [y,xi] = ksdensity(x);
具体的可以 help ksdensity; 里面讲的很详细
㈥ matlab中ksdensity函数 返回值 f为什么有时大于1呢, 密度应该小于1呀
数据里有NaN, missing values
㈦ matlab:用ksdensity生成了100个点和相应概率之后,希望把其中的xi和f提取出来,应该怎么写程序啊
Y(:,i)=xi;Z(:,i)=f(xi);
你这行是什么意思,f(xi)没有定义;