Code covered by the BSD License  

Highlights from
Statistical Learning Toolbox

from Statistical Learning Toolbox by Dahua Lin
Functions for statistical learning, pattern recognition and computer vision, covering many topics.

sledges2adjmat(n, nt, edges, varargin)
function A = sledges2adjmat(n, nt, edges, varargin)
%SLEDGES2ADJMAT Creates an adjacency matrix from edge set
%
% $ Syntax $
%   - A = sledges2adjmat(n, nt, edges, ...)
%
% $ Arguments $
%   - n:            The number of (source) nodes
%   - nt:           The number of (target) nodes
%   - edges:        The matrix of edge set
%   
% $ Description $
%   - A = sledges2adjmat(n, nt, edges) creates an adjacency matrix 
%     from the edge set. You can specify the following properties:
%       - 'valtype':        the value type of the target matrix
%                           - 'auto': if has value, make numeric matrix
%                                     if no value, make logical matrix
%                           - 'logical': make logical matrix always
%                           - 'numeric': make numeric matrix always
%                           (default = 'auto')
%       - 'sparse':         whether to create a sparse matrix 
%                           (default = true)
%       - 'preprune':       whether to prune the edges first 
%                           (default = false)
%       - 'prunemethod':    the method used to prune the edge set
%                           (default = [], means using default method)
%                           refer to slpruneedgeset for the specification 
%                           of the prune methods.
%       - 'sym':            whether to create symmetric graph
%       - 'symmethod':      the method to symmetrize the graph
%                           (default = [], means using default method)
%                           refer to slsymedgeset for the specification.
%
% $ Remarks $
%   - The property sym can only be true when n == nt.
%
%   - It is an integrated wrapper for slmakeadjmat, slsymgraph and
%     slpruneedgeset.
%
% $ History $
%   - Created by Dahua Lin, on Sep 9, 2006
%

%% parse and verify input arguments

if nargin < 3
    raise_lackinput('sledges2adjmat', 3);
end

if ~isempty(edges)
    ncols = size(edges, 2);
    if ndims(edges) ~= 2 || (ncols ~= 2 && ncols ~= 3)
        error('sltoolbox:invalidarg', ...
            'The edges should be a 2D matrix with two or three columns');
    end
end

opts.valtype = 'auto';
opts.sparse = true;
opts.preprune = false;
opts.prunemethod = [];
opts.sym = false;
opts.symmethod = [];
opts = slparseprops(opts, varargin{:});

if opts.sym
    if n ~= nt
        error('sltoolbox:rterror', ...
            'The sym can only be true when n == nt');
    end
end

switch opts.valtype
    case 'auto'
        islogic = (ncols == 2);
    case 'numeric'
        islogic = false;
    case 'logical'
        islogic = true;
    otherwise
        error('sltoolbox:invalidarg', ...
        'Invalid value type of adjacency matrix: %s', opts.valtype);
end


%% main skeleton

% prune
if opts.preprune
    edges = slpruneedgeset(n, nt, edges, opts.prunemethod);
end

% make adjmat

A = slmakeadjmat(n, nt, edges, [], islogic, opts.sparse);

% symmetrize
if opts.sym
    A = slsymgraph(A, opts.symmethod);
end

Contact us at files@mathworks.com