Re: Add terms surrounded by zero together in matrix

• To: mathgroup at smc.vnet.net
• Subject: [mg59144] Re: Add terms surrounded by zero together in matrix
• From: "Valeri Astanoff" <astanoff at yahoo.fr>
• Date: Sat, 30 Jul 2005 01:25:18 -0400 (EDT)
• References: <dcccur\$3j7\$1@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```I suggest you use Combinatorica
and proceed roughly like this
(I didn't deal with side effects):

In[1]:=<<DiscreteMath`Combinatorica`

In[2]:=m={{0,0,0,1,0},{0,0,1,2,0},{0,0,0,2,1},{1,3,0,0,0},
{0,0,0,0,0},{0,0,0,0,0},{0,0,1,1,0},
{5,0,3,0,0},{0,0,0,0,0},{0,0,0,3,1}};

im=Length[m];
jm=Length[m[[1]]];

select non nul vertices :

vtx=Outer[List,Range[im],Range[jm]]//Flatten[#,1]&//
Select[#,m[[#[[1]],#[[2]]]] != 0&]&;

f = function to tell if 2 vertices are connected

f[{i1_,j1_},{i1_,j2_/;j2 <= jm}]/;j2 == j1+1:=
m[[i1,j1]] != 0 && m[[i1,j1+1]] != 0;

f[{i1_,j1_},{i2_/;i2 <= im,j1_}]/;i2 == i1+1:=
m[[i1,j1]] != 0 && m[[i1+1,j1]] != 0;

[here : more to specify for f ... ]

In[8]:=gr=MakeGraph[vtx,f,Type -> Undirected];

In[9]:=ConnectedComponents[gr]

Out[9]={{1,2,3,4,5},{6,7},{8,9,11},{10},{12,13}}

etc. etc.

hth

Valeri Astanoff

```

• Prev by Date: Re: NIntegrate::inum
• Next by Date: Re: silly questions?
• Previous by thread: Re: Add terms surrounded by zero together in matrix
• Next by thread: Re: Add terms surrounded by zero together in matrix