0001 function save(g,filename)
0002
0003
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));