chisquare_inv.m
来自「一些关于小波变换的例子」· M 代码 · 共 47 行
M
47 行
function X = chisquare_inv(P,V);%CHISQUARE_INV Inverse of chi-square cumulative distribution function (cdf).%% X = chisquare_inv(P,V) returns the inverse of chi-square cdf with V% degrees of freedom at fraction P.% This means that P*100 percent of the distribution lies between 0 and X.%% To check, the answer should satisfy: P==gammainc(X/2,V/2)% Uses FMIN and CHISQUARE_SOLVE%% Written January 1998 by C. Torrence if (nargin < 2), error('Must input both P and V');, end if ((1-P) < 1E-4), error('P must be < 0.9999');, end if ((P==0.95) & (V==2)) % this is a no-brainer X = 5.9915; return end MINN = 0.01; % hopefully this is small enough MAXX = 1; % actually starts at 10 (see while loop below) X = 1; TOLERANCE = 1E-4; % this should be accurate enough vers = version; vers = str2num(vers(1)); while ((X+TOLERANCE) >= MAXX) % should only need to loop thru once MAXX = MAXX*10.;% this calculates value for X, NORMALIZED by V% Note: We need two different versions, depending upon the version of Matlab. if (vers >= 6) X = fminbnd('chisquare_solve',MINN,MAXX,optimset('TolX',TOLERANCE),P,V); else X = fmin('chisquare_solve',MINN,MAXX,[0,TOLERANCE],P,V); end MINN = MAXX; end X = X*V; % put back in the goofy V factor return% end of code
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?