[SciPy-user] assign to diagonal values?
David Warde-Farley
dwf at cs.toronto.edu
Wed Jan 30 22:44:42 EST 2008
On 30-Jan-08, at 10:08 PM, Alan G Isaac wrote:
> #diagrv: insert v as diagonal of matrix x (2D only!)
> def diagrv(x,v,copy=True):
> assert(len(x.shape)==2), "For 2-d arrays only."
> x = numpy.matrix( x, copy=copy )
> stride = 1 + x.shape[1]
> x.flat[ slice(0,None,stride) ] = v
> return x
Ooh that is clever. This should really go on the Cookbook page.
Perhaps more generally, for in place modification:
def setdiag(m, d):
assert(len(x.shape) == 2)
stride = 1 + x.shape[1]
m.flat[slice(0,None,stride)] = d
Regards,
David
More information about the SciPy-User
mailing list