我正在使用对数正态分布,现在我在 MATLAB 中遇到了 marcumq 函数的问题。这是我的代码:
N = 10^5; %//sample
x1 = randn(N,1); %//creat random variable x1
mean = 1; %//mean of x1
sigma = 0.4; %//variance of x1
x = mean + sqrt(sigma).*x1; %//random variable x
y = exp(x); %//log-normal random variable
z = 0:0.1:150;
[n,xout] = hist(y,z); %//frequency counts and the bin locations
m = 5;
Base = 0.01:0.02:1;
Pf = Base.^2;
lamda = gaminv(1-Pf,m)*2; %//value of decision threshold
for i = 1:1:1501
Q = marcumq(sqrt(2*m*xout(i)),sqrt(lamda),m);
end
我的问题是:我无法在“Q = marcumq(sqrt(2*m*xout(i)),sqrt(lamda),m);”中确定 Q 的值。当我运行我的程序时,它在所有元素中的 Q 的返回值为 1。我需要你的帮助来帮助我解决这个错误。太感谢了!