about summary refs log tree commit diff
path: root/sourcecodes/bnt-master/KPMtools/chi2inv.m
diff options
context:
space:
mode:
authorziejd22017-09-28 15:04:40 -0500
committerziejd22017-09-28 15:04:40 -0500
commit8070dc963753142bb86c4ed698d91fd623ed28e7 (patch)
treed0f6dd8fc46a49b819aa55c1a90faa14d8448883 /sourcecodes/bnt-master/KPMtools/chi2inv.m
parent7cc31810d53176e805532b2789955f4eedbce6bb (diff)
downloadBNW-8070dc963753142bb86c4ed698d91fd623ed28e7.tar.gz
BNW using Octave instead of Matlab.
This version of BNW should perform the same as the original version. The only difference is that it uses Octave instead of Matlab when running BayesNet Toolbox during parameter learning.

I am calling this BNW_1.02. It can be accessed at:
compbio.uthsc.edu/BNW_1.02
Diffstat (limited to 'sourcecodes/bnt-master/KPMtools/chi2inv.m')
-rw-r--r--sourcecodes/bnt-master/KPMtools/chi2inv.m36
1 files changed, 36 insertions, 0 deletions
diff --git a/sourcecodes/bnt-master/KPMtools/chi2inv.m b/sourcecodes/bnt-master/KPMtools/chi2inv.m
new file mode 100644
index 00000000..90c60258
--- /dev/null
+++ b/sourcecodes/bnt-master/KPMtools/chi2inv.m
@@ -0,0 +1,36 @@
+function x = chi2inv(p,v);
+%CHI2INV Inverse of the chi-square cumulative distribution function (cdf).
+%   X = CHI2INV(P,V)  returns the inverse of the chi-square cdf with V  
+%   degrees of freedom at the values in P. The chi-square cdf with V 
+%   degrees of freedom, is the gamma cdf with parameters V/2 and 2.   
+%
+%   The size of X is the common size of P and V. A scalar input
+%   functions as a constant matrix of the same size as the other input.   
+
+%   References:
+%      [1]  M. Abramowitz and I. A. Stegun, "Handbook of Mathematical
+%      Functions", Government Printing Office, 1964, 26.4.
+%      [2] E. Kreyszig, "Introductory Mathematical Statistics",
+%      John Wiley, 1970, section 10.2 (page 144)
+
+%   Copyright 1993-2002 The MathWorks, Inc. 
+%   $Revision: 1.1.1.1 $  $Date: 2005/04/26 02:30:30 $
+
+if nargin < 2, 
+    error('Requires two input arguments.');
+end
+
+[errorcode p v] = distchck(2,p,v);
+
+if errorcode > 0
+    error('Requires non-scalar arguments to match in size.');
+end
+
+% Call the gamma inverse function. 
+x = gaminv(p,v/2,2);
+
+% Return NaN if the degrees of freedom is not positive.
+k = (v <= 0);
+if any(k(:))
+    x(k) = NaN;
+end