㈠ 如何用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)沒有定義;