Mercurial > hg > octave-lyh
comparison scripts/statistics/distributions/frnd.m @ 7032:4d4197ffb09d
[project @ 2007-10-15 16:31:55 by jwe]
author | jwe |
---|---|
date | Mon, 15 Oct 2007 16:31:55 +0000 |
parents | a1dbe9d80eee |
children | 3306cfcb856e |
comparison
equal
deleted
inserted
replaced
7031:120f3135952f | 7032:4d4197ffb09d |
---|---|
76 print_usage (); | 76 print_usage (); |
77 endif | 77 endif |
78 | 78 |
79 | 79 |
80 if (isscalar (m) && isscalar (n)) | 80 if (isscalar (m) && isscalar (n)) |
81 if ((m > 0) && (m < Inf) && (n > 0) && (n < Inf)) | 81 if (isinf (m) || isinf (n)) |
82 rnd = n ./ m .* randg(m/2,sz) ./ randg(n/2,sz); | 82 if (isinf (m)) |
83 rnd = ones (sz); | |
84 else | |
85 rnd = 2 ./ m .* randg(m / 2, sz); | |
86 endif | |
87 if (! isinf (n)) | |
88 rnd = 0.5 .* n .* rnd ./ randg (n / 2, sz); | |
89 endif | |
90 elseif ((m > 0) && (m < Inf) && (n > 0) && (n < Inf)) | |
91 rnd = n ./ m .* randg (m / 2, sz) ./ randg (n / 2, sz); | |
83 else | 92 else |
84 rnd = NaN * ones (sz); | 93 rnd = NaN * ones (sz); |
85 endif | 94 endif |
86 else | 95 else |
87 rnd = zeros (sz); | 96 rnd = zeros (sz); |
88 | 97 |
89 k = find (!(m > 0) | !(m < Inf) | | 98 k = find (isinf(m) | isinf(n)); |
90 !(n > 0) | !(n < Inf)); | 99 if (any (k)) |
100 rnd (k) = 1; | |
101 k2 = find (!isinf(m) & isinf(n)); | |
102 rnd (k2) = 2 ./ m(k2) .* randg (m(k2) ./ 2, size(k2)); | |
103 k2 = find (isinf(m) & !isinf(n)); | |
104 rnd (k2) = 0.5 .* n(k2) .* rnd(k2) ./ randg (n(k2) ./ 2, size(k2)); | |
105 endif | |
106 | |
107 k = find (!(m > 0) | !(n > 0)); | |
91 if (any (k)) | 108 if (any (k)) |
92 rnd(k) = NaN; | 109 rnd(k) = NaN; |
93 endif | 110 endif |
94 | 111 |
95 k = find ((m > 0) & (m < Inf) & | 112 k = find ((m > 0) & (m < Inf) & |