diff scripts/statistics/distributions/lognormal_rnd.m @ 3456:434790acb067

[project @ 2000-01-19 06:58:51 by jwe]
author jwe
date Wed, 19 Jan 2000 06:59:23 +0000
parents f8dde1807dee
children e031284eea27
line wrap: on
line diff
--- a/scripts/statistics/distributions/lognormal_rnd.m
+++ b/scripts/statistics/distributions/lognormal_rnd.m
@@ -14,42 +14,39 @@
 ## along with this file.  If not, write to the Free Software Foundation,
 ## 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
-## usage:  lognormal_rnd (a, v [, r, c])
-##
-## lognormal_rnd (a, v) returns a matrix of random samples from the
-## lognormal distribution with parameters a and v.  The size of the
-## matrix is the common size of a and v.
+## -*- texinfo -*-
+## @deftypefn {Function File} {} lognormal_rnd (@var{a}, @var{v}, @var{r}, @var{c})
+## Return an @var{r} by @var{c} matrix of random samples from the
+## lognormal distribution with parameters @var{a} and @var{v}. Both
+## @var{a} and @var{v} must be scalar or of size @var{r} by @var{c}.
 ##
-## lognormal_rnd (a, v, r, c) returns an r by c matrix of random samples
-## from the lognormal distribution with parameters a and v. Both a and v
-## must be scalar or of size r by c.
+## If @var{r} and @var{c} are omitted, the size of the result matrix is
+## the common size of @var{a} and @var{v}.
+## @end deftypefn
 
-## Author:  KH <Kurt.Hornik@ci.tuwien.ac.at>
-## Description:  Random deviates from the log normal distribution
+## Author: KH <Kurt.Hornik@ci.tuwien.ac.at>
+## Description: Random deviates from the log normal distribution
 
 function rnd = lognormal_rnd (a, v, r, c)
 
   if (nargin == 4)
-    if ( !(is_scalar (r) && (r > 0) && (r == round (r))) )
-      error ("lognormal_rnd:  r must be a positive integer");
+    if (! (is_scalar (r) && (r > 0) && (r == round (r))) )
+      error ("lognormal_rnd: r must be a positive integer");
     endif
-    if ( !(is_scalar (c) && (c > 0) && (c == round (c))) )
-      error ("lognormal_rnd:  c must be a positive integer");
+    if (! (is_scalar (c) && (c > 0) && (c == round (c))) )
+      error ("lognormal_rnd: c must be a positive integer");
     endif
     [retval, a, v] = common_size (a, v, zeros (r, c));
     if (retval > 0)
-      error (strcat("lognormal_rnd:  ",
-                    "a and v must be scalar or of size ",
-                    sprintf ("%d by %d", r, c)));
+      error ("lognormal_rnd: a and v must be scalar or of size %d by %d", r, c);
     endif
   elseif (nargin == 2)
     [retval, a, v] = common_size (a, v);
     if (retval > 0)
-      error (strcat("lognormal_rnd:  ",
-                    "a and v must be of common size or scalar"));
+      error ("lognormal_rnd: a and v must be of common size or scalar");
     endif
   else
-    usage ("lognormal_rnd (a, v [, r, c])");
+    usage ("lognormal_rnd (a, v, r, c)");
   endif
 
   [r, c] = size (a);
@@ -59,12 +56,12 @@
   rnd = zeros (1, s);
 
   k = find (!(a > 0) | !(a < Inf) | !(v > 0) | !(v < Inf));
-  if any (k)
+  if (any (k))
     rnd(k) = NaN * ones (1, length (k));
   endif
 
   k = find ((a > 0) & (a < Inf) & (v > 0) & (v < Inf));
-  if any (k)
+  if (any (k))
     rnd(k) = a(k) .* exp (sqrt (v(k)) .* randn (1, length (k)));
   endif