function rok_evaluation_full_display (evaluationData)
    % ROK_EVALUATION_FULL_DISPLAY (evaluationData)
    %
    % Display the results of full detection/identification evaluation.
    %
    % Input:
    %  - evaluationData = evaluation data structure, obtained by
    %    ROK_EVALUATION_FULL_INITIALIZE
    %
    % See also: ROK_EVALUATION_FULL_CREATE, ROK_EVALUATION_FULL_UPDATE,
    % ROK_EVALUATION_FULL_LATEX_TABLE
    %
    % Cpyright (C) 2012, Rok Mandeljc <rok.mandeljc@fe.uni-lj.si>
    
    numIds = size(evaluationData.counterAssigned, 2);
    
    diagElements = diag(evaluationData.counterAssigned)';
    
    precision = diagElements ./ evaluationData.counterDetections;
    recall = diagElements ./ evaluationData.counterGround;

    overallPrecision = sum(diagElements) / sum(evaluationData.counterDetections);
    overallRecall = sum(diagElements) / sum(evaluationData.counterGround);    
    
    %% Print confusion matrix
    fprintf('*** Confusion matrix ***\n');
    fprintf('\t');
    fprintf('#%d\t', 1:numIds);
    fprintf('Missing\t');
    fprintf('Prec.\tRecall\t');
    fprintf('\n')
    
    for p = 1:numIds,
        fprintf('#%d\t', p);
        fprintf('%d\t', evaluationData.counterAssigned(p,:));
        fprintf('%d\t', evaluationData.counterFn(p));
        fprintf('%.2f\t', precision(p));
        fprintf('%.2f\t', recall(p));
        fprintf('\n');
    end
    
    fprintf('Phantom\t');
    fprintf('%d\t', evaluationData.counterFp);
    fprintf('\t');
    fprintf('%.2f\t', overallPrecision);
    fprintf('%.2f', overallRecall);
    fprintf('\n');
end