www.pudn.com > matlab_bgl.zip > clique_graph.m, change:2008-10-22,size:1347b


function [A] = clique_graph(n,varargin) 
% CLIQUE_GRAPH Generate the clique graph or bipartite clique graph 
% 
% The clique graph is a graph with as many edges as possible. 
% 
% A = clique_graph(n) generates a clique with n vertices and returns the 
% adjacency matrix A. 
% 
% A = clique_graph([m n]) generates a bipartite clique with m vertices on 
% one side and n vertices on the other side. 
% 
% A = cycle_graph(...,options) can generate variants of the clique graph 
% [...] = cycle_graph(n,options) can generate variants on the cycle graph 
%   options.selfloops: add self loops to the graph [{0} | 1] 
% 
% Example: 
%   A = clique_graph(4); 
%   test_planar_graph(A); 
%   A = clique_graph(5); 
%   test_planar_graph(A); 
 
% David Gleich 
% Copyright, Stanford University, 2008 
 
%% History 
%  2007-10-01: Initial coding 
%% 
 
options = struct('selfloops', 0); 
options = merge_options(options,varargin{:}); 
 
if isscalar(n) 
    A = ones(n,n); 
    if ~options.selfloops, 
        A = A - diag(diag(A)); 
    end 
    A = sparse(A); 
elseif numel(n) == 2, 
    m = n(1); 
    n = n(2); 
    A = ones(m,n); 
    A = spaugment(ones(m,n),0); 
    if options.selfloops, 
        A = A + speye(m+n); 
    end 
else  
    error('matlab_bgl:invalidArgument', ... 
        'the size option must be a scalar or a pair of numbers'); 
end