带变量的抽象矩阵乘法
Abstract matrix multiplication with variables
我知道 python 进行矩阵乘法的能力。
不幸的是我不知道如何抽象地做到这一点?所以不与
确定的数字,但有变量。
示例:
M = ( 1 0 ) * ( 1 d )
( a c ) ( 0 1 )
有什么方法可以定义a,c,d,使得矩阵乘法
给我
( 1 d )
( a a*d + c )
?
就像任何变量一样,array/matrix 只能用特定值初始化。你唯一能做的就是制作函数使初始化更容易
import numpy as np
def helper(a, c, d):
A = np.array([[1, 0], [a, c]])
B = np.array([[1, d], [0, 1]])
return A @ B
(其中@
运算符是显式矩阵乘法运算符)
使用 sympy 你可以这样做:
>>> from sympy import *
>>> var('a c d A B')
(a, c, d, A, B)
>>> A = Matrix([[1, 0], [a, c]])
>>> A
Matrix([
[1, 0],
[a, c]])
>>> B = Matrix([[1, d], [0, 1]])
>>> B
Matrix([
[1, d],
[0, 1]])
>>> M = A.multiply(B)
>>> M
Matrix([
[1, d],
[a, a*d + c]])
我知道 python 进行矩阵乘法的能力。 不幸的是我不知道如何抽象地做到这一点?所以不与 确定的数字,但有变量。
示例:
M = ( 1 0 ) * ( 1 d )
( a c ) ( 0 1 )
有什么方法可以定义a,c,d,使得矩阵乘法 给我
( 1 d )
( a a*d + c )
?
就像任何变量一样,array/matrix 只能用特定值初始化。你唯一能做的就是制作函数使初始化更容易
import numpy as np
def helper(a, c, d):
A = np.array([[1, 0], [a, c]])
B = np.array([[1, d], [0, 1]])
return A @ B
(其中@
运算符是显式矩阵乘法运算符)
使用 sympy 你可以这样做:
>>> from sympy import *
>>> var('a c d A B')
(a, c, d, A, B)
>>> A = Matrix([[1, 0], [a, c]])
>>> A
Matrix([
[1, 0],
[a, c]])
>>> B = Matrix([[1, d], [0, 1]])
>>> B
Matrix([
[1, d],
[0, 1]])
>>> M = A.multiply(B)
>>> M
Matrix([
[1, d],
[a, a*d + c]])