Home > matgraph > @partition > merge.m

merge

PURPOSE ^

merge(p,x,y) --- form a partition from p by combining x and y's parts.

SYNOPSIS ^

function q = merge(p,x,y)

DESCRIPTION ^

 merge(p,x,y) --- form a partition from p by combining x and y's parts.
 If x or y are out of range, p is returned.

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function q = merge(p,x,y)
0002 % merge(p,x,y) --- form a partition from p by combining x and y's parts.
0003 % If x or y are out of range, p is returned.
0004 
0005 q = p;
0006 n = nv(p);
0007 
0008 if (x<1) | (x>n) | (y<1) | (y>n) | (x==y)
0009     return
0010 end
0011 
0012 rx = find(p.array(:,x));
0013 ry = find(p.array(:,y));
0014 
0015 if rx == ry
0016     return
0017 end
0018 
0019 % merge row ry into row rx
0020 q.array(rx,:) = q.array(rx,:) | q.array(ry,:);
0021 
0022 % remove row ry
0023 
0024 idx = [1:ry-1,ry+1:np(p)];
0025 q.array = q.array(idx,:);
0026 q.array = sortrows(q.array);

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