Re: Add terms surrounded by zero together in matrix
- To: mathgroup at smc.vnet.net
 - Subject: [mg59192] Re: Add terms surrounded by zero together in matrix
 - From: Peter Pein <petsie at dordos.net>
 - Date: Mon, 1 Aug 2005 01:05:06 -0400 (EDT)
 - References: <dcccur$3j7$1@smc.vnet.net><dcf31j$led$1@smc.vnet.net> <dchoka$86g$1@smc.vnet.net>
 - Sender: owner-wri-mathgroup at wolfram.com
 
mchangun at gmail.com schrieb:
> Hi Oli,
> 
> That should be counted as two 1's.
> 
Andrzeij's code is easily adapted to this:
In[1]:=
SumsOfTermsSurroundedByZero[AA_]:=
  Block[{d,MakeNames,A},
    A=Prepend[Flatten[{0,#,0}]&/@AA,Table[0,{2+Length[AA[[1]]]}]];
    MakeNames[i_,j_]:=A[[i,j]]*=
        If[(d=Variables[{A[[i-1,j]],A[[i,j-1]]}])==={},
          Unique[z],
          If[Length[d]>1,
            Set[#,First[d]]&/@Rest[d]];
          First[d]
          ];
    MakeNames@@@Position[A,_?Positive];
    Coefficient[Plus@@Flatten[A],#]&/@Variables[A]
    ]
In[2]:=
SumsOfTermsSurroundedByZero[{{1,0,0,1,0,0,1},{0,1,0,1,0,
  1,0},{0,0,1,0,1,0,0},{0,0,0,1,0,0,0}}]
Out[2]=
{1,2,1,1,1,1,1,1}
-- 
Peter Pein
Berlin
http://people.freenet.de/Peter_Berlin/