ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> scipy-dev
scipy-dev
Re: [SciPy-dev] sparse matrix support status
by Jonathan Guyer other posts by this author
Nov 23 2005 11:27AM messages near this date
Re: [SciPy-dev] sparse matrix support status | Re: [SciPy-dev] sparse matrix support status
On Nov 22, 2005, at 6:09 PM, Ed Schofield wrote:

>  I have only one question for now.  Could you please explain the comment
> 
>  > dok_matrix.setdiag() appears to change the matrix shape if you're not
>  > careful, rendering it pretty useless for building the matrices for 
>  this
>  > problem
> 
>  in more detail?  The code for setdiag() is:
> 
>      def setdiag(self, values, k=0):
>          N = len(values)
>          for n in range(N):
>              self[n, n+k] = values[n]
>          return
> 
>  which grows the matrix only if it's currently smaller than len(values) 
>  x len(values).  What's the problem this behaviour caused?  Would you 
>  prefer to fix the size of a dok_matrix in advance and have a run-time 
>  check on the len(values)?  Or was the problem with the second 
>  argument?

Well, I guess I find the result of:

     > >> B = scipy.sparse.dok_matrix((3,3))
     > >> a = scipy.ones((3,))
     > >> B.setdiag(a,0)
     > >> print B.todense()
     [[ 1.  0.  0.]
      [ 0.  1.  0.]
      [ 0.  0.  1.]]
     > >> B.setdiag(a,1)
     > >> print B.todense()
     [[ 1.  1.  0.  0.]
      [ 0.  1.  1.  0.]
      [ 0.  0.  1.  1.]]

to be surprising.

I was expecting

     [[ 1.  1.  0.]
      [ 0.  1.  1.]
      [ 0.  0.  1.]]

This may not be a reasonable expectation, and I'm not sure where I came 
by it, since neither PySparse nor Numeric seems to support sticking 
anything into a diagonal, much less something that's too long.

Still, I think if I created an NxM matrix, then I probably want an NxM 
matrix.

-- 
Jonathan E. Guyer, PhD
Metallurgy Division
National Institute of Standards and Technology
<http://www.metallurgy.nist.gov/> 

_______________________________________________
Scipy-dev mailing list
Scipy-dev@[...].net
http://www.scipy.net/mailman/listinfo/scipy-dev
Thread:
Travis Oliphant
Robert Cimrman
Travis Oliphant
Robert Cimrman
Fernando Perez
Jonathan Guyer
Fernando Perez
Jonathan Guyer
Jonathan Guyer
Robert Cimrman
Jonathan Guyer
Ed Schofield
Jonathan Guyer
Ed Schofield
Travis Oliphant
Jonathan Guyer
Nils Wagner
Jonathan Guyer
Robert Cimrman
Robert Kern
Robert Cimrman
Travis Oliphant
Fernando Perez
Jonathan Guyer
Travis Oliphant
Nils Wagner
Jeff Whitaker
Nils Wagner

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved