<< graph_simp Graphs - Nets graph_union >>

metanet >> metanet > Graphs - Nets > graph_sum

graph_sum

sum of two graphs

Calling Sequence

g2 = graph_sum(g,g1)

Parameters

g

a graph_data_structure.

g1

an other graph data structure, with same nodes

g2

graph data structure of the new graph sum.

Description

graph_sum creates a graph g2 with an adjacency matrix equal to the sum of the adjacency matrices of the two graphs g and g1. g and g1 are supposed to be simple graphs (use graph_simp before calling graph_complement if necessary) and to have the same number of nodes.

Examples

ta=[1 1 2 2 2 3 4 5 5 7 8 8 9 10 10 10 10 11 12 13 13 13 14 15 16 16 17 17];
he=[2 10 3 5 7 4 2 4 6 8 6 9 7 7 11 13 15 12 13 9 10 14 11 16 1 17 14 15];
g=make_graph('foo',1,17,ta,he);
g.nodes.graphics.x=[283 163 63 57 164 164 273 271 339 384 504 513 439 623 631 757 642]/2;
g.nodes.graphics.y=[59 133 223 318 227 319 221 324 432 141 209 319 428 443 187 151 301]/2;
g.nodes.graphics.name=['A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' 'L' 'M' 'N' 'O' 'P' 'Q'];
g.nodes.graphics.display='name';
show_graph(g);

ta1=[2 3 4 5 11 12 1];
he1=[10 5 6 7 15 17 7];
g1=make_graph('foo',1,17,ta1,he1);
g1.nodes.graphics.x=g.nodes.graphics.x
g1.nodes.graphics.y=g.nodes.graphics.y
g1.nodes.graphics.name=g.nodes.graphics.name
g1.nodes.graphics.display='name';

show_graph(g1,'new');
g2=graph_sum(g,g1);
show_graph(g2,'new');
hilite_edges(index_from_tail_head(g2,ta,he))

//chech if g and g1 adjacency matrices sum is equal to g1 adjacency matrix
a=graph_2_mat(g,'node-node');
a1=graph_2_mat(g1,'node-node');
a2=graph_2_mat(g2,'node-node');
and(a+a1==a2)

See Also


<< graph_simp Graphs - Nets graph_union >>