MathGroup Archive 2013

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Sparse Array Question

  • To: mathgroup at smc.vnet.net
  • Subject: [mg130580] Re: Sparse Array Question
  • From: Bob Hanlon <hanlonr357 at gmail.com>
  • Date: Wed, 24 Apr 2013 06:58:07 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-outx@smc.vnet.net
  • Delivered-to: mathgroup-newsendx@smc.vnet.net
  • References: <20130423040424.702866B1B@smc.vnet.net>

myList = {{1, 1} -> 1, {2, 1} -> 2,
   {1, 1} -> 3, {2, 2} -> 1, {1, 1} -> 1};



myList //.
 {s___, a_ -> b_, m___, a_ -> c_, e___} ->
  {s, a -> (b + c), m, e}


{{1, 1} -> 5, {2, 1} -> 2, {2, 2} -> 1}



For v3 or later (Split was new in v3)


#[[1, 1]] -> Plus @@ #[[All, -1]] & /@
 Split[Sort[myList], #1[[1]] == #2[[1]] &]


{{1, 1} -> 5, {2, 1} -> 2, {2, 2} -> 1}



For v5 or later (Total was new in v5)


#[[1, 1]] -> Total[#[[All, -1]]] & /@
 Split[Sort[myList], #1[[1]] == #2[[1]] &]


{{1, 1} -> 5, {2, 1} -> 2, {2, 2} -> 1}



For v7 or later (GatherBy was new in v7)


#[[1, 1]] -> Total[#[[All, -1]]] & /@
 GatherBy[myList, First]


{{1, 1} -> 5, {2, 1} -> 2, {2, 2} -> 1}



Bob Hanlon


On Tue, Apr 23, 2013 at 12:04 AM, christopher arthur <
chris.arthur1 at gmail.com> wrote:

> Hello,
>
> I have a list of rules for defining a SparseArray.  The list has some
> coordinates repeated with different values.  If a coordinate appears in
> the list more than once, I want to sum up the values, and then have a
> SparseArray
>
> i.e., if my list were myList={{1,1}->1,{2,1}->2,{1,1}->3} then my
> SparseArray should have {1,1}->4.  I've tried using ReplacePart on an
> array to say myArray=ReplacePart[myArray,...] but this seems horribly
> inefficient as a way to change values in an array.
>
> I'm using Mathematica 5.2
>
> Cheers,
>
> Chris
>
>




  • Prev by Date: Re: Sparse Array Question
  • Next by Date: Re: Converting a magnified image of a line to a single
  • Previous by thread: Sparse Array Question
  • Next by thread: Re: Sparse Array Question