comparison scripts/statistics/distributions/poissrnd.m @ 14583:89504d0a5c5b stable

poissrnd should return zero when lambda = 0. (Bug # 36326) poissrnd.m: poissonrnd should return zero when lambda = 0. Add demos.
author Ben Abbott <bpabbott@mac.com>
date Mon, 30 Apr 2012 22:19:14 -0400
parents 72c96de7a403
children f4acb362b513
comparison
equal deleted inserted replaced
14572:000cd393f3c1 14583:89504d0a5c5b
74 else 74 else
75 cls = "double"; 75 cls = "double";
76 endif 76 endif
77 77
78 if (isscalar (lambda)) 78 if (isscalar (lambda))
79 if (lambda > 0 && lambda < Inf) 79 if (lambda >= 0 && lambda < Inf)
80 rnd = randp (lambda, sz); 80 rnd = randp (lambda, sz);
81 if (strcmp (cls, "single")) 81 if (strcmp (cls, "single"))
82 rnd = single (rnd); 82 rnd = single (rnd);
83 endif 83 endif
84 else 84 else
85 rnd = NaN (sz, cls); 85 rnd = NaN (sz, cls);
86 endif 86 endif
87 else 87 else
88 rnd = NaN (sz, cls); 88 rnd = NaN (sz, cls);
89 89
90 k = (lambda > 0) & (lambda < Inf); 90 k = (lambda >= 0) & (lambda < Inf);
91 rnd(k) = randp (lambda(k)); 91 rnd(k) = randp (lambda(k));
92 endif 92 endif
93 93
94 endfunction 94 endfunction
95
96 95
97 %!assert(size (poissrnd (2)), [1, 1]); 96 %!assert(size (poissrnd (2)), [1, 1]);
98 %!assert(size (poissrnd (ones(2,1))), [2, 1]); 97 %!assert(size (poissrnd (ones(2,1))), [2, 1]);
99 %!assert(size (poissrnd (ones(2,2))), [2, 2]); 98 %!assert(size (poissrnd (ones(2,2))), [2, 2]);
100 %!assert(size (poissrnd (1, 3)), [3, 3]); 99 %!assert(size (poissrnd (1, 3)), [3, 3]);
116 %!error poissrnd (1, [2 -1 2]) 115 %!error poissrnd (1, [2 -1 2])
117 %!error poissrnd (ones(2,2), 3) 116 %!error poissrnd (ones(2,2), 3)
118 %!error poissrnd (ones(2,2), [3, 2]) 117 %!error poissrnd (ones(2,2), [3, 2])
119 %!error poissrnd (ones(2,2), 2, 3) 118 %!error poissrnd (ones(2,2), 2, 3)
120 119
120 %!assert (poissrnd (0, 1, 1), 0)
121 %!assert (poissrnd ([0, 0, 0], [1, 3]), [0 0 0])
122