Home > matgraph > @graph > save.m

save

PURPOSE ^

save(g,filename) --- save a graph to disk

SYNOPSIS ^

function save(g,filename)

DESCRIPTION ^

 save(g,filename) --- save a graph to disk
 The graph g is saved to a file named in the argument filename.

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function save(g,filename)
0002 % save(g,filename) --- save a graph to disk
0003 % The graph g is saved to a file named in the argument filename.
0004 
0005 
0006 fid = fopen(filename,'w');
0007 
0008 if (fid == -1)
0009     error(['Cannot open "', filename, '" for output']);
0010 end
0011 
0012 n = nv(g);
0013 m = ne(g);
0014 
0015 fprintf(fid,'%%saved graph data\n');
0016 fprintf(fid,'sp = %d;\n', issparse(g));
0017 fprintf(fid,'nverts = %g;\n',n);
0018 fprintf(fid,'nedges = %g;\n',m);
0019 
0020 fprintf(fid,'a = zeros(%d,1);\n', m);
0021 fprintf(fid,'b = zeros(%d,1);\n', m);
0022 
0023 elist = edges(g);
0024 a = elist(:,1);
0025 b = elist(:,2);
0026 
0027 step = 20;
0028 for k=1:step:m
0029     last = min([k+step,m]);
0030     write_range(fid,a,k,last,'a');
0031     write_range(fid,b,k,last,'b');
0032 end
0033 
0034 fprintf(fid,'elist = [a,b];\n');
0035 
0036 if hasxy(g)
0037     xy = getxy(g);
0038     x = xy(:,1);
0039     y = xy(:,2);
0040     fprintf(fid,'x = zeros(%d,1);\n', n);
0041     fprintf(fid,'y = zeros(%d,1);\n', n);
0042     
0043     step = 10;
0044     
0045     for k=1:step:n
0046         last = min([k+step,n]);
0047         write_range(fid,x,k,last,'x');
0048         write_range(fid,y,k,last,'y');
0049     end
0050     
0051     fprintf(fid,'xy = [x,y];\n');
0052 else
0053     fprintf(fid,'xy = [];\n');
0054 end
0055 
0056 if is_labeled(g)
0057     fprintf(fid,'labs = {');
0058     for v=1:n
0059         fprintf(fid,['''', get_label(g,v), '''']);
0060         if (v<n)
0061             fprintf(fid,';');
0062         else
0063             fprintf(fid,'};\n');
0064         end
0065     end
0066 else
0067     fprintf(fid,'labs={};\n');
0068 end
0069 fclose(fid);
0070 
0071 
0072 
0073 function write_range(fid, array, first, last, name)
0074 
0075 fprintf(fid,'%s(%d:%d) = [', name, first, last);
0076 fprintf(fid,'%g;',array(first:(last-1)));
0077 fprintf(fid,'%g];\n', array(last));

Generated on Thu 13-Mar-2008 14:23:52 by m2html © 2003