Mercurial > octave-nkf
diff scripts/statistics/distributions/norminv.m @ 6617:55da54f6c5c2
[project @ 2007-05-14 16:17:46 by jwe]
author | jwe |
---|---|
date | Mon, 14 May 2007 16:17:46 +0000 |
parents | 34f96dd5441b |
children | 93c65f2a5668 |
line wrap: on
line diff
--- a/scripts/statistics/distributions/norminv.m Mon May 14 13:56:34 2007 +0000 +++ b/scripts/statistics/distributions/norminv.m Mon May 14 16:17:46 2007 +0000 @@ -18,18 +18,18 @@ ## 02110-1301, USA. ## -*- texinfo -*- -## @deftypefn {Function File} {} norminv (@var{x}, @var{m}, @var{v}) +## @deftypefn {Function File} {} norminv (@var{x}, @var{m}, @var{s}) ## For each element of @var{x}, compute the quantile (the inverse of the ## CDF) at @var{x} of the normal distribution with mean @var{m} and -## variance @var{v}. +## standard deviation @var{s}. ## -## Default values are @var{m} = 0, @var{v} = 1. +## Default values are @var{m} = 0, @var{s} = 1. ## @end deftypefn ## Author: KH <Kurt.Hornik@wu-wien.ac.at> ## Description: Quantile function of the normal distribution -function inv = norminv (x, m, v) +function inv = norminv (x, m, s) if (nargin != 1 && nargin != 3) print_usage (); @@ -37,43 +37,43 @@ if (nargin == 1) m = 0; - v = 1; + s = 1; endif - if (!isscalar (m) || !isscalar(v)) - [retval, x, m, v] = common_size (x, m, v); + if (!isscalar (m) || !isscalar (s)) + [retval, x, m, s] = common_size (x, m, s); if (retval > 0) - error ("norminv: x, m and v must be of common size or scalars"); + error ("norminv: x, m and s must be of common size or scalars"); endif endif sz = size (x); inv = zeros (sz); - if (isscalar (m) && isscalar(v)) - if (find (isinf (m) | isnan (m) | !(v > 0) | !(v < Inf))) + if (isscalar (m) && isscalar (s)) + if (find (isinf (m) | isnan (m) | !(s > 0) | !(s < Inf))) inv = NaN * ones (sz); else - inv = m + sqrt (v) .* stdnormal_inv (x); + inv = m + s .* stdnormal_inv (x); endif else - k = find (isinf (m) | isnan (m) | !(v > 0) | !(v < Inf)); + k = find (isinf (m) | isnan (m) | !(s > 0) | !(s < Inf)); if (any (k)) inv(k) = NaN; endif - k = find (!isinf (m) & !isnan (m) & (v > 0) & (v < Inf)); + k = find (!isinf (m) & !isnan (m) & (s > 0) & (s < Inf)); if (any (k)) - inv(k) = m(k) + sqrt (v(k)) .* stdnormal_inv (x(k)); + inv(k) = m(k) + s(k) .* stdnormal_inv (x(k)); endif endif - k = find ((v == 0) & (x > 0) & (x < 1)); + k = find ((s == 0) & (x > 0) & (x < 1)); if (any (k)) inv(k) = m(k); endif - inv((v == 0) & (x == 0)) = -Inf; - inv((v == 0) & (x == 1)) = Inf; + inv((s == 0) & (x == 0)) = -Inf; + inv((s == 0) & (x == 1)) = Inf; endfunction