Home > Back-end >  Sympy multiply `MatrixSymbol` with `Matrix` with known and fixed sizes
Sympy multiply `MatrixSymbol` with `Matrix` with known and fixed sizes

Time:09-08

I am trying to multiply a MatrixSymbol and Matrix and access the value inside it's multiplication

a = MatrixSymbol('a', 1, 4)
l = Matrix([1,2,3,4])
print((a*l)[0])

This error IndexError: Single indexing is only supported when the number of columns is known.

I would like to access the inner multiplication a[0][0]*1 a[0][1]*2....

CodePudding user response:

Maybe what you need is slicing rather than single indexing.

Something like this maybe:

In [50]: a*l
Out[50]: 
  ⎡1⎤
  ⎢ ⎥
  ⎢2⎥
a⋅⎢ ⎥
  ⎢3⎥
  ⎢ ⎥
  ⎣4⎦

In [51]: (a*l)[0,:]
Out[51]: 
⎛  ⎡1⎤⎞      
⎜  ⎢ ⎥⎟      
⎜  ⎢2⎥⎟      
⎜a⋅⎢ ⎥⎟[:, :]
⎜  ⎢3⎥⎟      
⎜  ⎢ ⎥⎟      
⎝  ⎣4⎦⎠      

In [52]: (a*l)[0,:].as_explicit()
Out[52]: [a₀₀   2⋅a₀₁   3⋅a₀₂   4⋅a₀₃]
  • Related