comparison scripts/statistics/distributions/binoinv.m @ 10549:95c3e38098bf

Untabify .m scripts
author Rik <code@nomad.inbox5.com>
date Fri, 23 Apr 2010 11:28:50 -0700
parents a1dbe9d80eee
children 1740012184f9
comparison
equal deleted inserted replaced
10548:479536c5bb10 10549:95c3e38098bf
40 40
41 sz = size (x); 41 sz = size (x);
42 inv = zeros (sz); 42 inv = zeros (sz);
43 43
44 k = find (!(x >= 0) | !(x <= 1) | !(n >= 0) | (n != round (n)) 44 k = find (!(x >= 0) | !(x <= 1) | !(n >= 0) | (n != round (n))
45 | !(p >= 0) | !(p <= 1)); 45 | !(p >= 0) | !(p <= 1));
46 if (any (k)) 46 if (any (k))
47 inv(k) = NaN; 47 inv(k) = NaN;
48 endif 48 endif
49 49
50 k = find ((x >= 0) & (x <= 1) & (n >= 0) & (n == round (n)) 50 k = find ((x >= 0) & (x <= 1) & (n >= 0) & (n == round (n))
51 & (p >= 0) & (p <= 1)); 51 & (p >= 0) & (p <= 1));
52 if (any (k)) 52 if (any (k))
53 if (isscalar (n) && isscalar (p)) 53 if (isscalar (n) && isscalar (p))
54 cdf = binopdf (0, n, p) * ones (size(k)); 54 cdf = binopdf (0, n, p) * ones (size(k));
55 while (any (inv(k) < n)) 55 while (any (inv(k) < n))
56 m = find (cdf < x(k)); 56 m = find (cdf < x(k));
57 if (any (m)) 57 if (any (m))
58 inv(k(m)) = inv(k(m)) + 1; 58 inv(k(m)) = inv(k(m)) + 1;
59 cdf(m) = cdf(m) + binopdf (inv(k(m)), n, p); 59 cdf(m) = cdf(m) + binopdf (inv(k(m)), n, p);
60 else 60 else
61 break; 61 break;
62 endif 62 endif
63 endwhile 63 endwhile
64 else 64 else
65 cdf = binopdf (0, n(k), p(k)); 65 cdf = binopdf (0, n(k), p(k));
66 while (any (inv(k) < n(k))) 66 while (any (inv(k) < n(k)))
67 m = find (cdf < x(k)); 67 m = find (cdf < x(k));
68 if (any (m)) 68 if (any (m))
69 inv(k(m)) = inv(k(m)) + 1; 69 inv(k(m)) = inv(k(m)) + 1;
70 cdf(m) = cdf(m) + binopdf (inv(k(m)), n(k(m)), p(k(m))); 70 cdf(m) = cdf(m) + binopdf (inv(k(m)), n(k(m)), p(k(m)));
71 else 71 else
72 break; 72 break;
73 endif 73 endif
74 endwhile 74 endwhile
75 endif 75 endif
76 endif 76 endif
77 77
78 endfunction 78 endfunction