0001 function y = rndprior(bayestopt_)
0002
0003 pshape=bayestopt_.pshape;
0004 pmean=bayestopt_.pmean;
0005 p2=bayestopt_.p2;
0006 p3=bayestopt_.p3;
0007 p4=bayestopt_.p4;
0008
0009 for i=1:length(pmean),
0010
0011 switch pshape(i)
0012
0013 case 1
0014 mu = (pmean(i)-p3(i))/(p4(i)-p3(i));
0015 stdd = p2(i)/(p4(i)-p3(i));
0016 A = (1-mu)*mu^2/stdd^2 - mu;
0017 B = A*(1/mu - 1);
0018 y(1,i) = beta_rnd(1, A, B);
0019 y(1,i) = y(1,i) * (p4(i)-p3(i)) + p3(i);
0020
0021 case 2
0022 mu = pmean(i)-p3(i);
0023 B = mu/p2(i)^2;
0024 A = mu/B;
0025 y(1,i) = gamm_rnd(1, A, B);
0026 y(1,i) = y(1,i) + p3(i);
0027
0028 case 3
0029 MU = pmean(i);
0030 SIGMA = p2(i);
0031 y(1,i) = randn*SIGMA+ MU;
0032
0033 case 4
0034 nu = p2(i);
0035 mu = pmean(i);
0036 a = nu/2;;
0037 b = ( gamma( (nu-1)/2 ) / mu / gamma( nu/2 ) )^2;
0038 A = b/2;
0039 B = 2/a;
0040 y(1,i) = gamm_rnd(1, A, B);
0041 y(1,i) = 1/y(1,i)^(0.5);
0042
0043 case 5
0044 y(1,i) = rand*(p4(i)-p3(i)) + p3(i);
0045
0046 end
0047 end
0048
0049
0050
0051
0052