Menu:

OPTIONS: Download this file, Download all MATLAB files, Go back

% Filename: p2srs.m
% Author: Andy Qi
% Date: December 2008
% Corresponds to: Listing 5.3

% Note: The code below gives an example of usage

function r = p2srs(p)
    % Takes a kernel p on S = {1,...,N} and returns a function 
    % F(x,z) which represents it as an SRS.
    % Parameters : p is a matrix
    % Returns : A function F with arguments (x,z).
    S = 1:length(p(1,:));
    function f = F(x,z)
        a = 0;
        for y = S
            if a < z && z <= a + p(x,y)
                f = y;
                return;
            end
            a = a + p(x,y);
        end
    end
    r = @F;
end

% Example of usage (put this in a separate file in the same directory).
%
%
% pH = [0.971,0.029,0.000;  
%       0.145,0.778,0.077;
%       0.000,0.508,0.492];
% F = p2srs(pH);
% F(2, 0.7)  % should return 2