% pooling function f0=poolf(pred,m,F) fbar=1/m; % pre-prior pdf % matrix F for k=1:F for l=1:F f(k,l)=0; for i=1:m f(k,l)=f(k,l)+log(pred(i,k))*log(pred(i,l))*fbar; end end end % maxium eigenvector v v=ones(F,1); epsilon0=0.001; epsilon=2*epsilon0; while epsilon>epsilon0 vbar=f*v/sqrt(v'*f'*f*v); epsilon=(vbar-v)'*(vbar-v); v=vbar; end v=v/norm(v); alpha=rank(f)/(v'*ones(F,1)); sum=0; for i=1:m f0(i)=1; for j=1:F f0(i)=f0(i)*pred(i,j)^(alpha*v(j)); end sum=sum+f0(i); end f0=f0/sum;