MathGroup Archive 2005

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

Search the Archive

Re: How to quickly find number of non-zero elements in sparse matrix rows?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg56847] Re: How to quickly find number of non-zero elements in sparse matrix rows?
  • From: Paul Abbott <paul at physics.uwa.edu.au>
  • Date: Sat, 7 May 2005 15:35:08 -0400 (EDT)
  • Organization: The University of Western Australia
  • Sender: owner-wri-mathgroup at wolfram.com

Paul Abbott wrote:

> The 4-th part of the data structure records the cumulative sum of 
> non-zero entries. However, there seems to be no simple way to access 
> this information. Usually, for special formats you can use Part to 
> extract such information but Part is interpreted by SparseArray, 
> circumventing this. 

Of course one can use pattern-matching! For a sparse array,

  sa=SparseArray[{i_,i_} -> 1,{10,10}]

extract the cumulative sum of non-zero entries,

  sa /. SparseArray[_, _, _, x_] :> x[[2,1]]

and use ListConvolve to give the number of non-zero entries in each row.

  ListConvolve[{1, -1}, %]

I think that this is about as fast as you can hope for. 

Cheers,
Paul

-- 
Paul Abbott                                      Phone: +61 8 6488 2734
School of Physics, M013                            Fax: +61 8 6488 1014
The University of Western Australia         (CRICOS Provider No 00126G)    
AUSTRALIA                               http://physics.uwa.edu.au/~paul
        http://InternationalMathematicaSymposium.org/IMS2005/


  • Prev by Date: Re: Boundary conditions in NDSolve
  • Next by Date: Re: Problem with substitutions in SparseArray?
  • Previous by thread: Re: How to quickly find number of non-zero elements in sparse matrix rows?
  • Next by thread: Re: How to quickly find number of non-zero elements in sparse matrix rows?