function [empProb] = empiricalProbability(distrib, inputsDistrib) % Calculates the empirical probability distribution of a given data distribution % Inputs: % 1. distrib: The name of the distribution % 2. inputsDistrib: Inputs to the distribution % Outputs: % 1. empProb: a vector where empProb(i) = empirical probability that feature i % = 1. switch(distrib) case 'mean' mean1 = inputsDistrib(1,:); p1 = inputsDistrib(2,:); dim = length(mean1); distrib = zeros(2^dim, dim); for i=1:2^(dim-1) [distrib(i,:) notRequired] = simMean(mean1, mean1, p1, p1); %disp(distrib(i,:)); end case 'mutEx' dim = inputsDistrib(1); distrib = zeros(2^dim, dim); p = inputsDistrib(2); for i= 1:2^dim [distrib(i,:) notRequired] = simMutuallyExclusive(dim,p); end case 'exp' dim = inputsDistrib(1); distrib = zeros(2^dim, dim); gamma = inputsDistrib(2); lambda = inputsDistrib(3); for i= 1:2^dim [distrib(i,:) notRequired] = simExp(dim,gamma, lambda); end case 'zipf' dim = inputsDistrib(1); distrib = zeros(2^dim, dim); s = inputsDistrib(2); for i= 1:2^dim [a b] = simZipf(dim,s); distrib(i,:) = a; end end for j= 1:dim empProb(j) = sum(distrib(:,j))/(2^dim); end