matrix_1 = matrix_2 * matrix_3
pyth at devel.trillke.net
Mon Aug 26 16:05:30 CEST 2002
Anton Vredegoor wrote:
> On 25 Aug 2002 23:32:01 +0200, Chris Liechti <cliechti at gmx.net> wrote:
> >anton at vredegoor.doge.nl (Anton Vredegoor) wrote in
> >news:akbhl5$m3r$1 at news.hccnet.nl:
> >> Is there a module that uses the star operator for matrix
> >> multiplication? If not, which module would be suitable to subclass a
> >> matrix class from so that it does this?
> >Nummeric has everything you need
> <numeric docs>
> matrixmultiply(m1, m2)
> The matrixmultiply(m1, m2) multiplies matrices or matrices and vectors as
> matrices rather than ele-mentwise.
> >>> print a
> [[0 1 2]
> [3 4 5]]
> >>> print b
> [1 2 3]
> >>> print a*b
> [[ 0 2 6]
> [ 3 8 15]]
> >>> print matrixmultiply(a,b)
> [ 8 26]
> </numeric docs>
> From this it seems that redefining the star operator to do what is
> called matrixmultiply here could cause problems. But maybe not. Could
> someone please inform me whether it would be possible to adapt numeric
> to use the star operator for matrixmultiply.
> I think numeric is a great package and if it were just for me I would
> use the standard package, but since this is not for one of my own
> projects I would rather not interfere with design decisions. In fact
> it could be that if no python module that uses the star operator for
> matrixmultiply can be found, python would not be used at all for
> this project.
Do know how easy it is in python to redefine the star operator?
>>> class a(str):
... def __mul__(self, other):
... return self.startswith(other) or other.startswith(self)
So you could inherit whatever matrix-class you like and (re)define
the __mul__ operator to mean 'matrixmultiply'.
Ask back if you don't know what i am talking about :-)
More information about the Python-list