[SciPy-user] Sparse matrix operations
Travis Oliphant
oliphant at ee.byu.edu
Fri Nov 5 11:11:14 CST 2004
Nils Wagner wrote:
> Travis Oliphant wrote:
>
>> Nils Wagner wrote:
>>
>>> Hi all,
>>>
>>> How can I compute the Rayleigh quotient
>>>
>>> R = x' A x/(x' B x),
>>>
>>> where A and B are sparse matrices.
>>>
>>> How do I compute the matrix vector product of a sparse matrix with a
>>> vector ?
>>> Can I use dot(A,x) ?
>>
>>
>>
>> No, This won't work.
>>
>> dot(x,A*x ) should work
>>
>> -Travis
>>
> Now, assume that x is a rectangular (dense) matrix and A is a sparse
> matrix
>
> ared = dot(transpose(x0),ma*x0)
> File "/usr/lib/python2.3/site-packages/scipy/sparse/Sparse.py", line
> 179, in __mul__
> res = csc * other
> File "/usr/lib/python2.3/site-packages/scipy/sparse/Sparse.py", line
> 403, in __mul__
> return self.matvec(other)
> File "/usr/lib/python2.3/site-packages/scipy/sparse/Sparse.py", line
> 492, in matvec
> raise ValueError, "Dimension mismatch"
> ValueError: Dimension mismatch
> >>> shape(x0)
> (715, 10)
> >>> shape(transpose(x0))
> (10, 715)
> >>> shape(ma)
> (715, 715)
>
> Any suggestion ?
sparse matrix * dense matrix is not yet supported. You will have to
loop over the columns of the dense matrix.
-Travis
More information about the SciPy-user
mailing list